2015-04-22 60 views
1

登錄特定的包在不同的文件中我有這樣使用log4j的

# 
# Log4j properties for the CometD Server. 
# 
log4j.rootLogger=INFO, logfile 
log4j.logger.org.springframework=WARN 
log4j.logger.org.apache.xbean=WARN 
log4j.logger.org.eclipse.jetty=INFO 
log4j.logger.org.cometd=INFO 
log4j.logger.test.cometd.server=DEBUG 
log4j.logger.com.googlecode=INFO 

# File appender 
log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.file=${cometd.log.dir}/cometd.log 
log4j.appender.logfile.maxFileSize=20MB 
log4j.appender.logfile.maxBackupIndex=10 
log4j.appender.logfile.append=true 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=[%d{yyyyMMdd HH:mm:ss:SSS zzz} (%t) %C#%M %L %p] - %m %n 

log4j的配置我想,對於包「com.googlecode」所有日誌轉到一個文件,其餘全部日誌保留在日誌文件中(自提以上爲cometd.log)

我該如何做到這一點?

回答

0

我找到了答案,併發布給更廣泛的社區,誰可能以後需要它。

這裏的關鍵是,我們需要爲每個文件單獨的附加器,我們需要,也可以作爲rootlogger設置有一個appender我們需要停止繼承它

所以最後設置會像下面

# 
# Log4j properties for the CometD Server. 
# 
log4j.rootLogger=INFO, logfile 
log4j.logger.org.springframework=WARN 
log4j.logger.org.apache.xbean=WARN 
log4j.logger.org.eclipse.jetty=INFO 
log4j.logger.org.cometd=INFO 
log4j.logger.test.cometd.server=DEBUG 
log4j.logger.com.googlecode=INFO, probleLogfile 
log4j.additivity.com.googlecode=false 

# File appender 
log4j.appender.probleLogfile=org.apache.log4j.RollingFileAppender 
log4j.appender.probleLogfile.file=${cometd.log.dir}/probe.log 
log4j.appender.probleLogfile.maxFileSize=20MB 
log4j.appender.probleLogfile.maxBackupIndex=10 
log4j.appender.probleLogfile.append=true 
log4j.appender.probleLogfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.probleLogfile.layout.ConversionPattern=[%d{yyyyMMdd HH:mm:ss:SSS zzz} (%t) %C#%M %L %p] - %m %n 


log4j.appender.logfile=org.apache.log4j.RollingFileAppender 
log4j.appender.logfile.file=${cometd.log.dir}/cometd.log 
log4j.appender.logfile.maxFileSize=20MB 
log4j.appender.logfile.maxBackupIndex=10 
log4j.appender.logfile.append=true 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.logfile.layout.ConversionPattern=[%d{yyyyMMdd HH:mm:ss:SSS zzz} (%t) %C#%M %L %p] - %m %n 

所以通過指定log4j.additivity.com.googlecode=false我們已經停止從根記錄器繼承這個類及其子類。

我們已經指定了一個單獨的appender來保存它的日誌在其他文件中。