SpringBoot日誌配置

SpringBoot默認的日誌框架是Slf4j + Logback。
雖然在建立SpringBoot項目後能夠直接使用日誌,可是在咱們常常會有將日誌按日期保存到文件中這樣的需求,因此須要自定義日誌的配置。
下面配置拿來就用哈哈哈:app

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--scan: 此屬性設置爲true時,配置文件若是發生改變,將會被從新加載,默認值爲true-->
    <!--scanPeriod: 設置監測配置文件是否有修改的時間間隔,當scan爲true時生效-->
    <!--debug: 當此屬性設置爲true時,將打印出logback內部日誌信息.默認false-->

    <!-- 定義日誌文件 輸出位置 -->
    <property name="log.home_dir" value="log" />

    <property name="log.maxHistory" value="60"/>
    <property name="log.maxFileSize" value="100MB" />
    <property name="log.totalSizeCap" value="20GB"/>


    <!--ConsoleAppender 控制檯輸出日誌 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                <pattern>%d | %-5p | %t:%c{1}:%L | %m%n</pattern>
            </pattern>
        </encoder>
    </appender>


    <!-- RollingFileAppender 文件輸出日誌 ERROR級別-->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 過濾器,只記錄ERROR級別的日誌 -->
        <!-- 若是日誌級別等於配置級別,過濾器會根據onMath 和 onMismatch接收或拒絕日誌。 -->
        <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.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>
                ${log.home_dir}/errorLog-%d{yyyy-MM-dd}.%i.txt
            </fileNamePattern>
            <!-- 當每一個文件達到100MB,會生成新的日誌文件,日誌文件最多保存60天,總日誌文件大小達到20GB,會刪除舊日誌-->
            <maxFileSize>${log.maxFileSize}</maxFileSize>
            <maxHistory>${log.maxHistory}</maxHistory>
            <totalSizeCap>${log.totalSizeCap}</totalSizeCap>

        </rollingPolicy>
        <encoder>
            <pattern>
                <!-- 設置日誌輸出格式 -->
                %d{yyyy-MM-dd HH:mm:ss,SSS} | %-5p | %t:%c{1}:%L | %m%n
            </pattern>
        </encoder>
    </appender>


    <!-- INFO級別-->
    <appender name="INFO" 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>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.home_dir}/appLog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
            <maxFileSize>${log.maxFileSize}</maxFileSize>
            <maxHistory>${log.maxHistory}</maxHistory>
            <totalSizeCap>${log.totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d | %-5p | %t:%c{1}:%L | %m%n</pattern>
        </encoder>
    </appender>


    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="ERROR"/>
        <appender-ref ref="INFO"/>
    </root>

</configuration>
相關文章
相關標籤/搜索