2013-06-25 26 views
0

我有兩個java應用程序一起工作。 我想配置我的log4j.properties文件,讓兩個RollingFileAppender捕獲相同的包但具有不同的日誌級別。 我想it.pack.subpack1,it.pack.subpack2,it.pack.subpack3登錄到兩個不同的文件appender,一個在DEBUG和以上捕獲所有,一個在INFO和以上捕獲所有。 我做了appB的竅門,但它不適用於appA。爲什麼? 我的屬性文件看起來像:log4j:如何設置更多的包登錄到兩個文件appender中,一個具有INFO閾值,另一個具有DEBUG閾值

log4j.rootLogger=INFO 

#appA INFO file appender 
log4j.appender.bocfe=org.apache.log4j.RollingFileAppender 
log4j.appender.bocfe.File=${server.log.dir}/bocfe.log 
log4j.appender.bocfe.Append=true 
log4j.appender.bocfe.Threshold=INFO 
log4j.appender.bocfe.MaxFileSize=15MB 
log4j.appender.bocfe.MaxBackupIndex=5 
log4j.appender.bocfe.layout=org.apache.log4j.PatternLayout 
log4j.appender.bocfe.layout.ConversionPattern=%d [%c{1}] %p - %m%n 

#appA DEBUG file appender 
log4j.appender.bocfe-debug=org.apache.log4j.RollingFileAppender 
log4j.appender.bocfe-debug.File=${server.log.dir}/bocfe-debug.log 
log4j.appender.bocfe-debug.Append=true 
log4j.appender.bocfe-debug.Threshold=DEBUG 
log4j.appender.bocfe-debug.MaxFileSize=15MB 
log4j.appender.bocfe-debug.MaxBackupIndex=5 
log4j.appender.bocfe-debug.layout=org.apache.log4j.PatternLayout 
log4j.appender.bocfe-debug.layout.ConversionPattern=%d [%c{1}] %p - %m%n 

#appB INFO file appender 
log4j.appender.bocws=org.apache.log4j.RollingFileAppender 
log4j.appender.bocws.File=${server.log.dir}/bocws.log 
log4j.appender.bocws.Append=true 
log4j.appender.bocws.Threshold=INFO 
log4j.appender.bocws.MaxFileSize=15MB 
log4j.appender.bocws.MaxBackupIndex=5 
log4j.appender.bocws.layout=org.apache.log4j.PatternLayout 
log4j.appender.bocws.layout.ConversionPattern=%d [%c{1}] %p - %m%n 

#appB DEBUG file appender 
log4j.appender.bocws-debug=org.apache.log4j.RollingFileAppender 
log4j.appender.bocws-debug.File=${server.log.dir}/bocws-debug.log 
log4j.appender.bocws-debug.Append=true 
log4j.appender.bocws-debug.Threshold=DEBUG 
log4j.appender.bocws-debug.MaxFileSize=15MB 
log4j.appender.bocws-debug.MaxBackupIndex=5 
log4j.appender.bocws-debug.layout=org.apache.log4j.PatternLayout 
log4j.appender.bocws-debug.layout.ConversionPattern=%d [%c{1}] %p - %m%n 

#loggers 
log4j.logger.com.eclipsesource.json=DEBUG, bocfe, bocfe-debug 
log4j.logger.it.secservizi.boc=DEBUG, bocfe, bocfe-debug 
log4j.logger.it.secservizi.abgmf.communication=DEBUG, bocfe, bocfe-debug 
log4j.logger.it.sec.ws.boc=DEBUG, bocws, bocws-debug 

#additivity 
log4j.additivity.com.eclipsesource.json=false 
log4j.additivity.it.secservizi.boc=false 
log4j.additivity.it.sec.ws.boc=false 
log4j.logger.it.secservizi.abgmf.communication=false 

回答

0

能否請您嘗試添加附加器來log4j.rootLogger?

log4j.rootLogger = INFO, bocfe, bocfe-debug 
+0

是的我可以但這是唯一的方法來解決?我的檔案中的問題在哪裏?它看起來像跳過這兩行 'log4j.logger.com.eclipsesource.json = DEBUG,bocfe,bocfe-debug log4j.logger.it.secservizi.boc = DEBUG,bocfe,bocfe-debug' – koopa

+0

我試過了「 log4j.logger.com.eclipsesource.json = DEBUG,bocfe,bocfe-debug「在我的環境中。它確實有效。我的屬性刪除了$ {server.log.dir}變量,將類名更改爲gp.test.Main,它通過調用Logger.getLogger(Main.class).debug()來輸出調試消息。我還在JVM選項中指定了屬性文件,如「-Dlog4j.configuration = file:/ D:/eclipsews/workspace/Test/test.properties」 –