Log4J-Log4J配置介紹/Log4J不同模組不同日誌級別輸出到不同檔案的配置
阿新 • • 發佈:2019-02-07
##=======================Log4J一些日誌級別配置測試說明20180622============================##
#==============一、根配置====================#
#1. 首先定義根配置,log4j.rootLogger = [日誌級別] , [自定義appender1], [自定義appender2], ......
#2. log4j.appender.[自定義appender1] = [定義輸出型別的類]
#3. log4j.appender.[自定義appender1].Target = [輸出目標]
#4. log4j.appender.[自定義appender1].Threshold = [true/false] 日誌級別限定(與根配置的級別比較取高級別,會輸出這個高級別或以上的日誌,
# 如根配置debug,這裡配置warn,會輸出warn或以上的級別)
#5. log4j.appender.[自定義appender1].laylout = [輸出格式類]
#6. log4j.appender.[自定義appender1].laylout.ConversionPattern = [輸出格式]
#=================二、自定義模組配置===================#
# 自定義模組配置與根配置沒有關係,根的級別選擇不會影響自定義的級別。只是additivity表示會不會使用根的配置也輸出一次
#1. log4j.logger.[自定義模組名] = [日誌級別] , [自定義appender1], [自定義appender2],......
# 自定義模組配置,如果是slf4j呼叫的話,需要這樣用 Logger logger = LoggerFactory.getLogger([自定義模組名])
#2. log4j.additivity.[自定義appender1]= [true/false] 預設是true,表示父(根)配置的輸出方式也使用,
# 如果是false,表示不使用,也就是比如根裡配置了一個控制檯輸出,這裡就不會輸出了
#3. 其他一些配置同根配置,如輸出格式等,輸出為檔案等
#4. log4j.appender.[自定義appender1].filter.F1 = org.apache.log4j.varia.LevelRangeFilter
# 日誌級別過濾限定類
#5. log4j.appender.[自定義appender1].filter.F1.LevelMin= [level]
# log4j.appender.[自定義appender1].filter.F1.LevelMax= [level]
# 過濾限定最高與最小級別,這裡限定後的級別,與模組根級別,還有Threshold的配置取交集
#=================三、自定義包配置===================#
# 配置方式與自定義模組一樣,只是把模組名或稱包名。不同的是自定義包的配置
# 可以使用Logger logger = LoggerFactory.getLogger(Class)的方式記錄。
#定義總根
log4j.rootLogger = error, mylog
### 輸出到控制檯 ###
log4j.appender.mylog = org.apache.log4j.ConsoleAppender
log4j.appender.mylog.Target = System.out
#經過測試這個在rootLogger的級別上取一個高的級別輸出,比如這時候輸出INFO以及以上級別
log4j.appender.mylog.Threshold = debug
log4j.appender.mylog.layout = org.apache.log4j.PatternLayout
log4j.appender.mylog.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#定義A模組的根,A也可以寫成包名。定義模組名字後只能使用appender後的名字作為getLogger的引數。
#將info,warn.error三個級別分別輸出到不同的檔案
log4j.logger.A = info , Ainfo , Awarn , Aerror
### 輸出A模組Info日誌,這裡通過filter做了限制,只輸出INFO日誌,Logger logger = loggerFactory.get
###Logger("Ainfo") 獲取logger,只能使用logger.info(),記錄其他級別也沒法記錄到檔案
#經過測試這個配置的意思是 要不要繼承父(根)的輸出方法,比如這裡是false就不會再在控制檯輸出
log4j.additivity.Ainfo=false
log4j.appender.Ainfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Ainfo.File = D:/logs/Ainfo.log
log4j.appender.Ainfo.Append = true
#經過測試這個配置的意思是在A的級別和下面配置的級別上取一個高的級別輸出,比如這時候輸出INFO以及以上級別
log4j.appender.Ainfo.Threshold = INFO
log4j.appender.Ainfo.layout = org.apache.log4j.PatternLayout
log4j.appender.Ainfo.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日誌過濾限定
log4j.appender.Ainfo.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Ainfo.filter.F1.LevelMin=INFO
log4j.appender.Ainfo.filter.F1.LevelMax=INFO
#將A模組的Warn日誌儲存到一個單獨的檔案
#經過測試這個配置的意思是 要不要繼承父(根)的輸出方法,比如這裡是true就還會在控制檯輸出
log4j.additivity.Awarn=true
log4j.appender.Awarn = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Awarn.File = D:/logs/Awarn.log
log4j.appender.Awarn.Append = true
#經過測試這個配置的意思是在A的級別和下面配置的級別上取一個高的級別輸出,比如這時候輸出INFO以及以上級別
log4j.appender.Awarn.Threshold = INFO
log4j.appender.Awarn.layout = org.apache.log4j.PatternLayout
log4j.appender.Awarn.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日誌過濾限定,在上面取的高級別的基礎上繼續做限定,這裡只取了一個WARN級別
log4j.appender.Awarn.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Awarn.filter.F1.LevelMin=WARN
log4j.appender.Awarn.filter.F1.LevelMax=WARN
#將A模組的Error日誌儲存到一個單獨的檔案
#經過測試這個配置的意思是 要不要繼承父(根)的輸出方法,比如這裡是true就還會在控制檯輸出
log4j.additivity.Aerror=true
log4j.appender.Aerror = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Aerror.File = D:/logs/Aerror.log
log4j.appender.Aerror.Append = true
#經過測試這個配置的意思是在A的級別和下面配置的級別上取一個高的級別輸出,比如這時候輸出INFO以及以上級別
log4j.appender.Aerror.Threshold = INFO
log4j.appender.Aerror.layout = org.apache.log4j.PatternLayout
log4j.appender.Aerror.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日誌過濾限定,在上面取的高級別的基礎上繼續做限定,這裡只取了一個Error級別
log4j.appender.Aerror.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Aerror.filter.F1.LevelMin=ERROR
log4j.appender.Aerror.filter.F1.LevelMax=ERROR
#自定義包配置
log4j.logger.com.iscas.test.log4j.package1 = info , package1Error
log4j.additivity.package1Error=true
log4j.appender.package1Error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.package1Error.File = D:/logs/package1error.log
log4j.appender.package1Error.Append = true
log4j.appender.package1Error.Threshold = INFO
log4j.appender.package1Error.layout = org.apache.log4j.PatternLayout
log4j.appender.package1Error.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
log4j.appender.package1Error.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.package1Error.filter.F1.LevelMin=ERROR
log4j.appender.package1Error.filter.F1.LevelMax=ERROR