2012-12-09 27 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> 
相關問題