【问题标题】:Wildfly Logging Profile Setting ( logger.debug("test") )Wildfly 日志记录配置文件设置 ( logger.debug("test") )
【发布时间】:2018-05-05 02:29:55
【问题描述】:

我想为我的应用程序日志创建配置文件

我需要使用logger.debug(),但如果我在standalone.xml 文件DEBUG 中输入太多行

<level name="INFO"/><level name="DEBUG"/>

.....................
    <subsystem xmlns="urn:jboss:domain:logging:3.0">
        <console-handler name="CONSOLE">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="COLOR-PATTERN"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="DEBUG"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <root-logger>
            <level name="DEBUG"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
        <formatter name="PATTERN">
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
        <formatter name="COLOR-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
    </subsystem>
......................

我可以创建一个仅启用我的应用程序调试日志记录的配置文件吗?

我创建了我的个人资料并添加到我的 MANIFEST.MF 但它不起作用

<logging-profiles>
   <logging-profile name="accounts-app-profile">
       <console-handler name="CONSOLE">
           <level name="DEBUG"/>
           <formatter>
              <named-formatter name="COLOR-PATTERN"/>
            </formatter>
       </console-handler>
       <file-handler name="ejb-trace-file">
           <level name="DEBUG"/>
           <file relative-to="jboss.server.log.dir" path="ejb-trace.log"/>
       </file-handler>
       <logger category="com.company.accounts.ejbs">
            <level name="DEBUG"/>
            <handlers>
                <handler name="ejb-trace-file"/>
            </handlers>
       </logger>
       <formatter name="COLOR-PATTERN">
           <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
       </formatter>
</logging-profile>

清单.MF

Manifest-Version: 1.0
Logging-Profile: accounts-app-profile

调用记录器

final static Logger logger = Logger.getLogger("com.company.accounts.ejbs");

logger.debug("debug");
logger.info("info");

文件ejb-trace.log 创建但不写入内部

【问题讨论】:

  • 这是什么类型的部署?
  • @JamesR.Perkins 战争文件

标签: java logging wildfly jboss-logging jboss-cli


【解决方案1】:

这可能是旧帖子,因为我遇到了这个帖子来解决我上面描述的问题,将来有人也可以阅读这个。出于这个原因,我想在这里分享我的答案。

在我的情况下,我关注了这篇文章 https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6.2/html/administration_and_configuration_guide/example_logging_profile_configuration 和其他几个帖子,并在 standalone.xml 文件中创建了 &lt;logging-profile&gt; wildFly server 并在 MANIFEST.MF 文件夹中手动创建了 MANIFEST.MF 文件,然后日志文件得到了已创建,但日志内容并未写入其中。

原因是我的应用程序使用 maven 构建配置和创建清单文件。

如果应用程序使用maven 进行构建配置或使用maven 插件创建manifest.mf 文件,那么您必须在应用程序的pom.xml 文件中添加以下信息。

  • 如果应用程序使用maven 进行构建配置,则在pom.xml &lt;build&gt; &lt;plugins&gt; 标签中添加以下行
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <archive>
                        <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin> 
  • 如果应用程序使用maven 插件创建manifest.mf 文件然后在pom.xml &lt;manifestEntries&gt; 中添加以下行,即在
<build> 
   <plugins> 
     <plugin> 
       <archive> 
        <manifestEntries> 
          <Logging-Profile>myAppLogProfile</Logging-Profile> 
        </manifestEntries>

添加后,如果您执行mvn cleanmvn install,则Logging-Profile: myAppLogProfile 行将添加到您的war 文件中的MANIFEST.MF 文件中

Manifest-Version: 1.0
Logging-Profile: myAppLogProfile

之后,当我重新部署它时,日志文件中有日志内容。

希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    您尝试执行的操作不需要日志配置文件。假设类别 com.company.accounts.ejbs 并假设您希望将应用程序中的消息记录到它们自己的文件中,则以下 CLI 命令将

    /subsystem=logging/file-handler=ejb-trace-file:add(level=DEBUG, file={relative-to=jboss.server.log.dir, path=ejb-trace.log}, autoflush=true)
    /subsystem=logging/logger=com.company.accounts.ejbs:add(level=DEBUG, handlers=[ejb-trace-file], use-parent-handlers=false)
    

    如果您还希望将消息记录到控制台处理程序或 server.log,您可以删除 use-parent-handlers=false 属性或将其设置为 true

    【讨论】:

    • 我解决了在处理程序控制台 DEBUG 而不是 INFO 中的更改
    【解决方案3】:

    不要更改根记录器,而是添加一个与您要调试的包名称匹配的类别

    【讨论】:

    • 您犯的错误是更改独立 xml 中的根记录器。将其改回 INFO
    • 为简单起见,我只想将您的
    • 我必须在哪里添加 条目?你可以给我一个例子。谢谢
    • in
    • 就在
    猜你喜欢
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2015-02-18
    • 1970-01-01
    • 2010-09-30
    • 2018-10-12
    相关资源
    最近更新 更多