logback完美配置案例

<?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>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末癞埠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燕差,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坝冕,死亡現(xiàn)場(chǎng)離奇詭異徒探,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)喂窟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)测暗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人磨澡,你說(shuō)我怎么就攤上這事碗啄。” “怎么了稳摄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵稚字,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厦酬,道長(zhǎng)胆描,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任仗阅,我火速辦了婚禮昌讲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘减噪。我一直安慰自己短绸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布筹裕。 她就那樣靜靜地躺著醋闭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朝卒。 梳的紋絲不亂的頭發(fā)上目尖,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音扎运,去河邊找鬼瑟曲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛豪治,可吹牛的內(nèi)容都是我干的洞拨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼负拟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烦衣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤花吟,失蹤者是張志新(化名)和其女友劉穎秸歧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體衅澈,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡键菱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了今布。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片经备。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖部默,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纷闺,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布请敦,位于F島的核電站侍筛,受9級(jí)特大地震影響裆熙,放射性物質(zhì)發(fā)生泄漏入录。R本人自食惡果不足惜僚稿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衰猛。 院中可真熱鬧,春花似錦冕杠、人聲如沸兢交。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至钮追,卻和暖如春元媚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞠绰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像趣钱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胚宦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容