1. 程式人生 > >SpringBoot從入門到進階——學會Logback日誌的配置和搭建

SpringBoot從入門到進階——學會Logback日誌的配置和搭建

<?xml version="1.0" encoding="UTF-8"?>
<included>
    <!--只輸出INFO Level到日誌檔案的appender-->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--
日誌檔案輸出的檔名,%i用來標記分割日誌的序號 --> <fileNamePattern>${LOG_FILE}.INFOLevel.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern> <!-- 單個日誌檔案最大50MB, 儲存30天的日誌, 日誌檔案空間為20GB --> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> <
totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!--配置日誌的級別過濾器,只保留INFO Level的日誌--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <
onMismatch>DENY</onMismatch> </filter> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度,%msg:日誌訊息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!--只輸出WARN Level到日誌檔案的appender--> <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- %i用來標記分割日誌的序號 --> <fileNamePattern>${LOG_FILE}.WARNLevel.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern> <!-- 單個日誌檔案最大50MB, 儲存30天的日誌, 日誌檔案空間為20GB --> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!--配置日誌的級別過濾器,只保留WARN Level的日誌--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!--只輸出ERROR Level到日誌檔案的appender--> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- %i用來標記分割日誌的序號 --> <fileNamePattern>${LOG_FILE}.ERRORLevel.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern> <!-- 單個日誌檔案最大50MB, 儲存30天的日誌, 日誌檔案空間為20GB --> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!--配置日誌的級別過濾器,只保留ERROR Level的日誌--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> </included>