摘要:如果日志級(jí)別等于配置級(jí)別,過(guò)濾器會(huì)根據(jù)和接收或拒絕日志。例如過(guò)濾掉所有低于級(jí)別的日志。有個(gè)子標(biāo)簽,用于配置求值條件。
沒時(shí)間解釋了,快上車,老司機(jī)先看代碼
LogBack.xmlDEBUG ${MESSAGE_FILE_PATTERN} true INFO ACCEPT DENY ${catalina.base}/logs/vod.log ${catalina.base}/logs/vod-info-%d{yyyy-MM-dd}.log ${maxhistory} ${MESSAGE_FILE_PATTERN} true INFO ACCEPT DENY ${catalina.base}/logs/vod-music.log ${catalina.base}/logs/vod-music-%d{yyyy-MM-dd}.log ${maxhistory} ${MESSAGE_FILE_PATTERN} true WARN ${catalina.base}/logs/vod-error.log ${catalina.base}/logs/vod-error-%d{yyyy-MM-dd}.log ${maxhistory} ${MESSAGE_FILE_PATTERN} true INFO ACCEPT DENY ${catalina.base}/logs/vod-douban.log ${catalina.base}/logs/vod-douban-%d{yyyy-MM-dd}.log ${maxhistory} ${MESSAGE_FILE_PATTERN}
上述實(shí)現(xiàn)了
1、將DEBUG、INFO、WRAN/ERROR日志分開打印到不同文件
2、通過(guò)包名來(lái)按模塊打印到特定文件
3、日志文件每天rolling、保存最大歷史日志文件數(shù)
幾個(gè)注意點(diǎn):
1、日志打印格式如下:%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level %marker %thread %logger %msg%n
沒有打印具體的方法名。如果要打印方法名:加個(gè)%M
%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level %marker %thread %logger.%M %msg%n
但是打印方法名可能會(huì)加大日志開銷,從而影響速度問(wèn)題。
說(shuō)明見:http://stackoverflow.com/ques...
Generating the method name is not particularly fast. Thus, its use should be avoided unless execution speed is not an issue.
2、additivity的作用
additivity的作用在于children-logger是否使用 rootLogger配置的appender進(jìn)行輸出。
false:表示只用當(dāng)前l(fā)ogger的appender-ref。
true:表示當(dāng)前l(fā)ogger的appender-ref和rootLogger的appender-ref都有效。也就是說(shuō)會(huì)打印至少兩遍。
3、filter的作用
過(guò)濾器,執(zhí)行一個(gè)過(guò)濾器會(huì)有返回個(gè)枚舉值,即DENY,NEUTRAL,ACCEPT其中之一。返回DENY,日志將立即被拋棄不再經(jīng)過(guò)其他過(guò)濾器;返回NEUTRAL,有序列表里的下個(gè)過(guò)濾器過(guò)接著處理日志;返回ACCEPT,日志會(huì)被立即處理,不再經(jīng)過(guò)剩余過(guò)濾器。
過(guò)濾器被添加到
幾個(gè)常用的過(guò)濾器:
LevelFilter: 級(jí)別過(guò)濾器,根據(jù)日志級(jí)別進(jìn)行過(guò)濾。如果日志級(jí)別等于配置級(jí)別,過(guò)濾器會(huì)根據(jù)onMath 和 onMismatch接收或拒絕日志。有以下子節(jié)點(diǎn):
例如:將過(guò)濾器的日志級(jí)別配置為INFO,所有INFO級(jí)別的日志交給appender處理,非INFO級(jí)別的日志,被過(guò)濾掉。
INFO ACCEPT DENY %-4relative [%thread] %-5level %logger{30} - %msg%n
ThresholdFilter: 臨界值過(guò)濾器,過(guò)濾掉低于指定臨界值的日志。當(dāng)日志級(jí)別等于或高于臨界值時(shí),過(guò)濾器返回NEUTRAL;當(dāng)日志級(jí)別低于臨界值時(shí),日志會(huì)被拒絕。
例如:過(guò)濾掉所有低于INFO級(jí)別的日志。
INFO %-4relative [%thread] %-5level %logger{30} - %msg%n
EvaluatorFilter: 求值過(guò)濾器,評(píng)估、鑒別日志是否符合指定條件。需要額外的兩個(gè)JAR包,commons-compiler.jar和janino.jar有以下子節(jié)點(diǎn):
鑒別器,常用的鑒別器是JaninoEventEvaluato,也是默認(rèn)的鑒別器,它以任意的java布爾值表達(dá)式作為求值條件,求值條件在配置文件解釋過(guò)成功被動(dòng)態(tài)編譯,布爾值表達(dá)式返回true就表示符合過(guò)濾條件。evaluator有個(gè)子標(biāo)簽
return message.contains("billing"); ACCEPT DENY %-4relative [%thread] %-5level %logger - %msg%n
參考:
https://github.com/makotan/lo...
http://stackoverflow.com/ques...
http://czj4451.iteye.com/blog...
http://aub.iteye.com/blog/111...
# Output pattern : date [thread] priority category - message log4j.rootLogger=INFO, Console, RollingFile,Error #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)] %m%n #RollingFile log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.RollingFile.File=${catalina.base}/logs/shopping/shopping.log log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout log4j.appender.RollingFile.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)] %m%n log4j.appender.RollingFile.filter.a=org.apache.log4j.varia.LevelRangeFilter log4j.appender.RollingFile.filter.a.LevelMin=INFO log4j.appender.RollingFile.filter.a.LevelMax=INFO log4j.appender.RollingFile.filter.a.acceptOnMatch=true #ShoppingUtil log4j.appender.ShoppingUtil=org.apache.log4j.DailyRollingFileAppender log4j.appender.ShoppingUtil.File=${catalina.base}/logs/shopping/shopping-util.log log4j.appender.ShoppingUtil.layout=org.apache.log4j.PatternLayout log4j.appender.ShoppingUtil.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)] %m%n log4j.appender.ShoppingUtil.filter.aa=org.apache.log4j.varia.LevelRangeFilter log4j.appender.ShoppingUtil.filter.aa.LevelMin=INFO log4j.appender.ShoppingUtil.filter.aa.LevelMax=INFO log4j.appender.ShoppingUtil.filter.aa.acceptOnMatch=true #error log4j.appender.Error=org.apache.log4j.DailyRollingFileAppender log4j.appender.Error.File=${catalina.base}/logs/shopping/shopping-error.log log4j.appender.Error.layout=org.apache.log4j.PatternLayout log4j.appender.Error.layout.ConversionPattern=[shopping] %-d{HH:mm:ss} %p [%c{1}.%M(%L)] %m%n log4j.appender.Error.Threshold=WARN #Project defalult level log4j.logger.org.springside.examples.miniweb=INFO log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=DEBUG log4j.logger.org.springside= INFO log4j.logger.com.shopping= INFO log4j.logger.com.shopping.shop.utility=INFO,Console,ShoppingUtil,Error log4j.additivity.com.shopping.shop.utility=false
參考:
http://stackoverflow.com/ques...
http://www.cnblogs.com/0201zc...
http://blog.csdn.net/liu251/a...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69908.html
摘要:的測(cè)試完全不同級(jí)別的。記錄請(qǐng)求的級(jí)別在高于或等于其的有效級(jí)別時(shí)被稱為被啟用,否則,稱為被禁用。該規(guī)則是的核心。指定名稱,指定的全限定名。對(duì)記錄事件進(jìn)行格式化。查看當(dāng)前活動(dòng)文件的大小,如果超過(guò)指定大小會(huì)告知觸發(fā)當(dāng)前活動(dòng)文件滾動(dòng)。 一、logback的介紹 Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件,官方網(wǎng)站: http://logback.qos.ch。 logback當(dāng)...
摘要:公眾號(hào)樂園是由創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件。此外完整實(shí)現(xiàn)使你可以很方便地更換成其它日志系統(tǒng)如或。是要與結(jié)合起來(lái)用的。從控制臺(tái)打印出來(lái)的日志級(jí)別只有還有。這里可以使用絕對(duì)路徑如,會(huì)自動(dòng)在盤下創(chuàng)建文件夾和相應(yīng)的日志文件。 公眾號(hào) java樂園 Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件。logback當(dāng)前分成三個(gè)模塊:logback-core、logback- class...
摘要:本文要來(lái)分享給大家程序員最常用的日志框架組件。沒有基礎(chǔ)的同學(xué)也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學(xué),就一定用得到,先收藏,以備不時(shí)之需。 作為一名Java程序員,我們開發(fā)了很多Java應(yīng)用程序,包括桌面應(yīng)用、WEB應(yīng)用以及移動(dòng)應(yīng)用。然而日志系統(tǒng)是一個(gè)成熟Java應(yīng)用所必不可少的。在開發(fā)和調(diào)試階段,日志可以幫...
摘要:默認(rèn)情況下將級(jí)別的日志輸出到控制臺(tái)中,不會(huì)寫到日志文件,且不能進(jìn)行復(fù)雜配置。節(jié)點(diǎn)用于定義變量,方便使用。 showImg(https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190320135049.png); 前言 ??java web 下有好幾種日志框架,比如:logback,log4j,log4j2(slj...
閱讀 2276·2021-11-16 11:44
閱讀 650·2019-08-30 15:55
閱讀 3282·2019-08-30 15:52
閱讀 3621·2019-08-30 15:43
閱讀 2205·2019-08-30 11:21
閱讀 445·2019-08-29 12:18
閱讀 1954·2019-08-26 18:15
閱讀 478·2019-08-26 10:32