讓自己的日誌優雅呈現(logback.xml配置)

最近些項目需要輸出大量日誌,不過輸出的格式看着,總感覺怪怪的,於是一怒之下決定來美化一下我的日誌(一件無聊卻有意義的事情)

使用的是Slf4j包裝logback,廢話多的不說,結果和logback.xml 配置如下(強迫症的福音)如需再個性化配置,該網站學習鏈接

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
    <!-- 從高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
    <!-- 日誌輸出規則  根據當前ROOT 級別,日誌輸出時,級別高於root默認的級別時  會輸出 -->
    <!-- 以下  每個配置的 filter 是過濾掉輸出文件裏面,會出現高級別文件,依然出現低級別的日誌信息,通過filter 過濾只記錄本級別的日誌-->
    <!-- 定義日誌文件 輸入位置 -->
    <property name="logPath" value="D:/temp/logback/log-back.log"/>
    <!-- 日誌最大的歷史 30天,這個參數要看你基於哪一種滾動策略【基於天,單位爲天,月同理】本文件設置的多事基於天滾動策略 -->
    <property name="maxHistory" value="30"/>
    <!-- 日誌輸出格式【控制檯】-->
    <property name="logPatternConsoleLog"
              value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5.5p) | %boldYellow(%-80.80c) | %boldGreen(%-8.8L): %magenta(%-30M) : %boldBlue(%-20.20t) | %cyan(%m) %n"/>
    <!--提供兩個格式的輸出,如果覺得上面的信息太過詳細,可使用下面的格式-->
    <!--    <property name="logPatternConsoleLog"-->
    <!--              value="%highlight(%-5.5p) | %boldYellow(%-40.40c{40}) | %boldGreen(%-8.8L)| %cyan(%m) %n"/>-->

    <property name="logPattern" value="%date{yyyy-MM-dd HH:mm:ss} | %p | %c | %M:%L | %m%n"/>
    <!-- 日誌輸出編碼格式 -->
    <property name="logCharset" value="UTF-8"/>


    <!--配置控制檯的輸出-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${logPatternConsoleLog}</pattern>
            <charset>${logCharset}</charset>
        </encoder>
    </appender>


    <!--配置文件輸出:error-->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 過濾器,只記錄ERROR級別的日誌 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>       <!--如果是匹配,就接受這條規則【整個appender塊】,FilterReply類(DENY,NEUTRAL,ACCEPT)-->
            <onMismatch>DENY</onMismatch>   <!--如果沒有匹配,就禁止-->
            <!--<onMismatch>NEUTRAL</onMismatch>-->     <!--如果沒有匹配,就忽略這條規則,看下一個【appender塊規則是否接受】-->
        </filter>
        <encoder>
            <pattern>${logPattern}</pattern>
            <charset>${logCharset}</charset>
        </encoder>
        <!--滾動策略:每天一個日誌文件-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路徑-->
            <fileNamePattern>${logPath}/%d{yyyy-MM-dd}/error.%d.log</fileNamePattern>
            <!-- 可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件假設設置每個月滾動,且<maxHistory>是30,
            則只保存最近30天的文件,刪除之前的舊文件。注意,刪除舊文件是,那些爲了歸檔而創建的目錄也會被刪除-->
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>

    <!--配置文件輸出:info-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>${logPattern}</pattern>
            <charset>${logCharset}</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logPath}/%d{yyyy-MM-dd}/info.%d.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>

    <!--設置日誌級別-->
    <root level="debug">
        <appender-ref ref="consoleLog"/>        <!--控制檯-->
        <appender-ref ref="fileErrorLog"/>      <!--error文件-->
        <appender-ref ref="fileInfoLog"/>       <!--info文件-->
    </root>

</configuration>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章