SpringBoot+slf4j配置

classpath:logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 控制檯打印日誌的相關配置 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日誌格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%class:%line] - %m%n</pattern>
        </encoder>
        <!-- 過濾的級別 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <!-- debug日誌文件配置 -->
    <appender name="DEBUG-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日誌格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
        </encoder>
        <!-- 日誌級別過濾器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 過濾的級別 -->
            <level>DEBUG</level>
        </filter>
        <!-- 循環政策:基於時間創建日誌文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日誌文件名格式 每小時一個日誌文件 這裏如果設置文件最大大小的話pattern要加上 %i 表示第幾份文件-->
            <fileNamePattern>/logs/debug/%d{yyyyMMddHH}-%i.log</fileNamePattern>
            <!-- 最大保存時間:30天-->
            <maxHistory>30</maxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>5MB</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <!-- info日誌文件配置 -->
    <appender name="INFO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日誌格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
        </encoder>
        <!-- 日誌級別過濾器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 過濾的級別 -->
            <level>INFO</level>
            <!-- 匹配時的操作:接收(記錄) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配時的操作:拒絕(不記錄) -->
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 循環政策:基於時間創建日誌文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日誌文件名格式 每小時一個日誌文件-->
            <fileNamePattern>/logs/info/%d{yyyyMMddHH}.log</fileNamePattern>
            <!-- 最大保存時間:30天-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <!--wran日誌文件配置-->
    <appender name="WARN-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日誌格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
        </encoder>
        <!-- 日誌級別過濾器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 過濾的級別 -->
            <level>WARN</level>
            <!-- 匹配時的操作:接收(記錄) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配時的操作:拒絕(不記錄) -->
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 循環政策:基於時間創建日誌文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日誌文件名格式 每小時一個日誌文件-->
            <fileNamePattern>/logs/warn/%d{yyyyMMdd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!--error日誌文件配置-->
    <appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日誌格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
        </encoder>
        <!-- 日誌級別過濾器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 過濾的級別 -->
            <level>ERROR</level>
            <!-- 匹配時的操作:接收(記錄) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配時的操作:拒絕(不記錄) -->
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 循環政策:基於時間創建日誌文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日誌文件名格式 一天一個日誌文件-->
            <fileNamePattern>/logs/error/%d{yyyyMMdd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!-- 基於dubug處理日誌:具體控制檯或者文件對日誌級別的處理還要看所在appender配置的filter,如果沒有配置filter,則使用root配置 -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="DEBUG-FILE"/>
        <appender-ref ref="INFO-FILE"/>
        <appender-ref ref="WARN-FILE"/>
        <appender-ref ref="ERROR-FILE"/>
    </root>
</configuration>

        <!-- 級別從高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
        <!-- 日誌輸出規則 根據當前ROOT 級別,日誌輸出時,級別高於root默認的級別時 會輸出 -->
        <!-- 以下 每個配置的 filter 是過濾掉輸出文件裏面,會出現高級別文件,依然出現低級別的日誌信息,通過filter 過濾只記錄本級別的日誌 -->
        <!-- scan 當此屬性設置爲true時,配置文件如果發生改變,將會被重新加載,默認值爲true。 -->
        <!-- scanPeriod 設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan爲true時,此屬性生效。默認的時間間隔爲1分鐘。 -->
        <!-- debug 當此屬性設置爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態。默認值爲false。 -->
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章