<?xml version="1.0" encoding="UTF-8"?>
<!--
-scan:當(dāng)此屬性設(shè)置為true時(shí)挑豌,配置文件如果發(fā)生改變,將會(huì)被重新加載矛辕,默認(rèn)值為true
-scanPeriod:設(shè)置監(jiān)測(cè)配置文件是否有修改的時(shí)間間隔,如果沒(méi)有給出時(shí)間單位娩贷,默認(rèn)單位是毫秒峭判。
- 當(dāng)scan為true時(shí)颓屑,此屬性生效。默認(rèn)的時(shí)間間隔為1分鐘
-debug:當(dāng)此屬性設(shè)置為true時(shí)识颊,將打印出logback內(nèi)部日志信息崭庸,實(shí)時(shí)查看logback運(yùn)行狀態(tài)。默認(rèn)值為false谊囚。
-
- configuration 子節(jié)點(diǎn)為 appender怕享、logger、root
-->
<configuration scan="true" scanPeriod="60 second" debug="false">
<!-- 負(fù)責(zé)寫(xiě)日志,控制臺(tái)日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 一是把日志信息轉(zhuǎn)換成字節(jié)數(shù)組,二是把字節(jié)數(shù)組寫(xiě)入到輸出流 -->
<encoder>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 文件日志 -->
<appender name="DEBUG" class="ch.qos.logback.core.FileAppender">
<file>debug.log</file>
<!-- append: true,日志被追加到文件結(jié)尾; false,清空現(xiàn)存文件;默認(rèn)是true -->
<append>true</append>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- LevelFilter: 級(jí)別過(guò)濾器镰踏,根據(jù)日志級(jí)別進(jìn)行過(guò)濾 -->
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 滾動(dòng)記錄文件函筋,先將日志記錄到指定文件,當(dāng)符合某個(gè)條件時(shí)奠伪,將日志記錄到其他文件 -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>info.log</File>
<!-- ThresholdFilter:臨界值過(guò)濾器跌帐,過(guò)濾掉 TRACE 和 DEBUG 級(jí)別的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天生成一個(gè)日志文件,保存30天的日志文件
- 如果隔一段時(shí)間沒(méi)有輸出日志绊率,前面過(guò)期的日志不會(huì)被刪除谨敛,只有再重新打印日志的時(shí)候,會(huì)觸發(fā)刪除過(guò)期日志的操作滤否。
-->
<fileNamePattern>info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender >
<!--<!– 異常日志輸出 –>-->
<!--<appender name="EXCEPTION" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<file>exception.log</file>-->
<!--<!– 求值過(guò)濾器脸狸,評(píng)估、鑒別日志是否符合指定條件. 需要額外的兩個(gè)JAR包,commons-compiler.jar和janino.jar –>-->
<!--<filter class="ch.qos.logback.core.filter.EvaluatorFilter">-->
<!--<!– 默認(rèn)為 ch.qos.logback.classic.boolex.JaninoEventEvaluator –>-->
<!--<evaluator>-->
<!--<!– 過(guò)濾掉所有日志消息中不包含"Exception"字符串的日志 –>-->
<!--<expression>return message.contains("Exception");</expression>-->
<!--</evaluator>-->
<!--<OnMatch>ACCEPT</OnMatch>-->
<!--<OnMismatch>DENY</OnMismatch>-->
<!--</filter>-->
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<!– 觸發(fā)節(jié)點(diǎn)炊甲,按固定文件大小生成泥彤,超過(guò)5M,生成新的日志文件 –>-->
<!--<maxFileSize>5MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--</appender>-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>error.log</file>
<encoder>
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%5level] [%thread] %logger{0} %msg%n</Pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 按照固定窗口模式生成日志文件卿啡,當(dāng)文件大于20MB時(shí)吟吝,生成新的日志文件。
- 窗口大小是1到3颈娜,當(dāng)保存了3個(gè)歸檔文件后剑逃,將覆蓋最早的日志。
- 可以指定文件壓縮選項(xiàng)
-->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>error.%d{yyyy-MM}(%i).log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<!-- 異步輸出 -->
<appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
<!-- 不丟失日志.默認(rèn)的,如果隊(duì)列的80%已滿(mǎn),則會(huì)丟棄TRACT官辽、DEBUG炕贵、INFO級(jí)別的日志 -->
<discardingThreshold >0</discardingThreshold>
<!-- 更改默認(rèn)的隊(duì)列的深度,該值會(huì)影響性能.默認(rèn)值為256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一個(gè) -->
<appender-ref ref ="ERROR"/>
</appender>
<!--
- 1.name:包名或類(lèi)名,用來(lái)指定受此logger約束的某一個(gè)包或者具體的某一個(gè)類(lèi)
- 2.未設(shè)置打印級(jí)別野崇,所以繼承他的上級(jí)<root>的日志級(jí)別“DEBUG”
- 3.未設(shè)置additivity称开,默認(rèn)為true,將此logger的打印信息向上級(jí)傳遞乓梨;
- 4.未設(shè)置appender鳖轰,此logger本身不打印任何信息,級(jí)別為“DEBUG”及大于“DEBUG”的日志信息傳遞給root扶镀,
- root接到下級(jí)傳遞的信息蕴侣,交給已經(jīng)配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺(tái)臭觉;
-->
<logger name="ch.qos.logback" />
<!--
- 1.將級(jí)別為“INFO”及大于“INFO”的日志信息交給此logger指定的名為“STDOUT”的appender處理昆雀,在控制臺(tái)中打出日志,
- 不再向次logger的上級(jí) <logger name="logback"/> 傳遞打印信息
- 2.level:設(shè)置打印級(jí)別(TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF)蝠筑,還有一個(gè)特殊值INHERITED或者同義詞NULL狞膘,代表強(qiáng)制執(zhí)行上級(jí)的級(jí)別。
- 如果未設(shè)置此屬性什乙,那么當(dāng)前l(fā)ogger將會(huì)繼承上級(jí)的級(jí)別挽封。
- 3.additivity:為false,表示此logger的打印信息不再向上級(jí)傳遞,如果設(shè)置為true臣镣,會(huì)打印兩次
- 4.appender-ref:指定了名字為"STDOUT"的appender辅愿。
-->
<logger name="com.weizhi.common.LogMain" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
<!--<appender-ref ref="DEBUG"/>-->
<!--<appender-ref ref="EXCEPTION"/>-->
<!--<appender-ref ref="INFO"/>-->
<!--<appender-ref ref="ERROR"/>-->
<appender-ref ref="ASYNC"/>
</logger>
<!--
- 根logger
- level:設(shè)置打印級(jí)別,大小寫(xiě)無(wú)關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF忆某,不能設(shè)置為INHERITED或者同義詞NULL点待。
- 默認(rèn)是DEBUG。
-appender-ref:可以包含零個(gè)或多個(gè)<appender-ref>元素弃舒,標(biāo)識(shí)這個(gè)appender將會(huì)添加到這個(gè)logger
-->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<!--<appender-ref ref="DEBUG"/>-->
<!--<appender-ref ref="EXCEPTION"/>-->
<!--<appender-ref ref="INFO"/>-->
<appender-ref ref="ASYNC"/>
</root>
</configuration>
logback完美配置案例
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)测暗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人磨澡,你說(shuō)我怎么就攤上這事碗啄。” “怎么了稳摄?”我有些...
- 文/不壞的土叔 我叫張陵稚字,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厦酬,道長(zhǎng)胆描,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任仗阅,我火速辦了婚禮昌讲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘减噪。我一直安慰自己短绸,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布筹裕。 她就那樣靜靜地躺著醋闭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朝卒。 梳的紋絲不亂的頭發(fā)上目尖,一...
- 那天,我揣著相機(jī)與錄音扎运,去河邊找鬼瑟曲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛豪治,可吹牛的內(nèi)容都是我干的洞拨。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼负拟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烦衣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤花吟,失蹤者是張志新(化名)和其女友劉穎秸歧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體衅澈,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡键菱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了今布。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片经备。...
- 正文 年R本政府宣布请敦,位于F島的核電站侍筛,受9級(jí)特大地震影響裆熙,放射性物質(zhì)發(fā)生泄漏入录。R本人自食惡果不足惜僚稿,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衰猛。 院中可真熱鬧,春花似錦冕杠、人聲如沸兢交。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至钮追,卻和暖如春元媚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞠绰。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像趣钱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胚宦,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 為什么使用 slf4j + logback logbak定位于log4j的替代者首有,logback同樣支持slf4j...
- #事情回憶# 熄燈后帥帥因?yàn)槟驀W嘩要求拿罐罐,他故意賴(lài)在床上枢劝,指揮我們倆去拿罐罐井联,可昨天我們倆都沒(méi)有去(算是一次保...
- 盡管人們相信“人無(wú)完人”、“金無(wú)赤足”的箴言您旁,可是我們每個(gè)人卻始終致力于不斷努力文明自己的精神烙常、野蠻自身的體魄,以...
- 那位飛升者神帝鹤盒,東伯雪鷹首先排除了蚕脏,對(duì)方頗為低調(diào)一心修行,這等修行者東伯雪鷹還是很欣賞的昨悼,無(wú)仇無(wú)怨他是不可能對(duì)這等...
- 你閑的蛋疼么蝗锥? 你閑的蛋疼么? 你閑的蛋疼么率触? 你肯定閑的蛋疼终议,要不然也不會(huì)看這篇文章~~ 好吧,想好好的理解這篇...