2

为什么 log4j 打印:

17:58:30,623 INFO  [stdout] (http--127.0.0.1-8080-5)

完整的消息是:

17:58:30,623 INFO  [stdout] (http--127.0.0.1-8080-5) 2012-12-09 17:58:30.623 [INFO] com.edfx.adb.web.controller.AuthController#login - A message

我正在使用 JBoss AS7,并且排除了 log4j,例如:

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

log4j.properties的是:

log4j.rootLogger=INFO, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender

log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] %c#%M - %m%n

我想将消息打印为:

2012-12-09 17:58:30.623 [INFO] com.edfx.adb.web.controller.AuthController#login - A message

我该怎么做?

4

1 回答 1

4

这是因为 JBoss STDIO 包装了 stdout 和 stderr 以及 log4jConsoleAppender输出到 stdout。

您可以通过配置日志子系统而不是使用 log4j.properties 文件来完成您尝试做的相同事情。使用日志子系统也没有理由排除jboss-deployment-structure.xml.

<subsystem xmlns="urn:jboss:domain:logging:1.1">

    <console-handler name="CONSOLE">
        <level name="INFO"/>
        <formatter>
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%p] %c#%M - %m%n"/>
        </formatter>
    </console-handler>

    <!-- other handlers and loggers -->

    <root-logger>
        <level name="INFO"/>
        <handlers>
            <handler name="CONSOLE"/>
        </handlers>
    </root-logger>
</subsystem>
于 2012-12-10T16:12:15.397 回答