【问题标题】:Jboss EAP 7 Logging formatJboss EAP 7 日志格式
【发布时间】:2017-08-08 18:45:05
【问题描述】:

我正在开发 JBoss EAP 7。我使用我自己的 log4j2 而不是 Jboss 日志记录。 所以我将它们排除在 Jboss-deployment-structure.xml 文件中。

<deployment>
    <exclude-subsystems>
            <subsystem name="logging" />
        </exclude-subsystems>
     <!--
      Prevent that the server add automatically dependencies -->
      <!-- Exclude all logging dependencies so we can use log4j2 -->
      <exclusions>
         <module name="org.apache.commons.logging" />
         <module name="org.apache.log4j" />
         <module name="org.jboss.logging" />
         <module name="org.jboss.logging.jul-to-slf4j-stub" />
         <module name="org.jboss.logmanager" />
         <module name="org.jboss.logmanager.log4j" />
         <module name="org.slf4j" />
         <module name="org.slf4j.impl" />
      </exclusions> 
</deployment>

在我的 log4j2.xml 文件中,我提到了以下模式布局。

<Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%p|%d|%c|%m|%n" />
        </Console>

但是当我最初启动应用程序时,会加载一个类,其中的日志可以正确打印,如下所示。

DEBUG|2017-08-08 13:20:26,993|Default.com.test.StartClass|deleting directory: C:\eclipse\workspace\WEB-INF\templates

但后来当 Jboss 服务器开始加载其子系统时,它正在添加标准输出并在我的实际模式前面添加一些其他内容。

13:39:06,997 INFO  [stdout] (ServerService Thread Pool -- 87) INFO|2017-08-08 13:39:06,997|Default.com.test.AppXmlUnmarshaller|Unmarshalling took 342 milliseconds.

我不明白为什么在排除子系统后它也采用该模式布局。 请帮我解决这个问题。

提前致谢。

【问题讨论】:

    标签: java logging jboss-eap-7


    【解决方案1】:

    JBoss EAP 将stdoutstderr 包装在记录器中。我假设您使用的是ConsoleAppender,它将写入stdout。如果您想避免使用标准模式前缀,您需要创建一个单独的 console-handler 并为其分配一个仅打印消息的模式。然后创建一个stdout 记录器并将新的console-handler 分配给它,并将use-parent-handlers 设置为false。应该执行以下 CLI 命令之类的操作。

    /subsystem=logging/pattern-formatter=msg-only-format:add(pattern="%s%n")
    /subsystem=logging/console-handler=stdout:add(named-formatter=msg-only-format, autoflush=true, target=System.out)
    /subsystem=logging/logger=stdout:add(handlers=[stdout], use-parent-handlers=false)
    

    如果您排除了不需要这些依赖项排除的日志记录子系统,也只是一个 FYI。日志子系统是将这些依赖项添加到您的部署中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多