log4j日誌分模組列印,同時不列印到控制檯上
阿新 • • 發佈:2019-01-25
由於定時重新整理程式的啟用,導致catalina.out配置檔案中打入大量日誌,致使程式除錯困難。
無法正常檢視日誌。所以客戶要求將效能流量配置日誌遷移出catalina.out目錄。修改log4j配置檔案後,發現 分檔案中有了日誌輸出,但是,catalina.out檔案中依然有效能流量日誌輸出。 原始配置方法如下:後來發現瞭如下方法,則可將日誌從catalina.out工作臺日誌檔案中移出, log4j.additivity 現配置檔案如下:log4j.logger.com.test.cao.snmpgather = INFO, snmpgather log4j.appender.snmpgather=org.apache.log4j.DailyRollingFileAppender log4j.appender.snmpgather.File=${catalina.home}/logs/performance/snmpgather_ log4j.appender.snmpgather.DatePattern= yyyy-MM- dd'.log' log4j.appender.snmpgather.layout=org.apache.log4j.PatternLayout log4j.appender.snmpgather.layout.ConversionPattern= %-d{yyyy -MM-dd HH:mm:ss,SSS} [%p] [%C.%M:%L] %m%n
log4j.logger.com.test.cao.snmpgather = INFO, snmpgather log4j.appender.snmpgather=org.apache.log4j.DailyRollingFileAppender log4j.appender.snmpgather.File=${catalina.home}/logs/performance/snmpgather_ log4j.appender.snmpgather.DatePattern= yyyy-MM- dd'.log' log4j.appender.snmpgather.layout=org.apache.log4j.PatternLayout log4j.appender.snmpgather.layout.ConversionPattern= %-d{yyyy -MM-dd HH:mm:ss,SSS} [%p] [%C.%M:%L] %m%n
log4j.additivity.com.linkage.module.liposs.system.cao.snmpgather = false
下面是log4j.additivity解釋:
log4j.additivity是 子Logger 是否繼承 父Logger 的 輸出源(appender) 的標誌位。具體說,預設情況下 子Logger 會繼承 父Logger 的appender,也就是說 子Logger 會在 父Logger 的appender裡輸出。
若是additivity設為false,則 子Logger 只會在自己的appender裡輸出,而不會在 父Logger 的appender裡輸出。 由於父log為:
所以會打到工作臺中。 將additivity設為false則只依賴與自身的配置。log4j.rootCategory=, A1 , R log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.Threshold=INFO log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern= %-d{yyyy -MM-dd HH:mm:ss} [%c]-[%p] %m%n log4j.appender.R.Threshold=INFO log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=10 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern= %p %t %c - %m%n