1. 程式人生 > >Log4J-Log4J配置介紹/Log4J不同模組不同日誌級別輸出到不同檔案的配置

Log4J-Log4J配置介紹/Log4J不同模組不同日誌級別輸出到不同檔案的配置

##=======================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