2012-12-09 31 views
2

为什么log4j的打印:如何使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

这是因为JBoss STDIO将stdout和stderr包装起来,log4j ConsoleAppender输出到标准输出。

您可以通过配置日志记录子系统而不是使用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> 
相关问题