logback配置日志文件/日志級別/按天自動歸檔歷史日志文文件


<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false">
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

    <!-- 定義全局參數常量 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="appName" value="api-app-gsdx-oa"/>
    <!-- 控制要保留的歸檔文件的最大數量,以異步方式刪除較舊的文件,超過MaxHistory數量才會刪除,只有當每天生成且只生成一個文件時才表示保留天數。 -->
    <property name="log.maxHistory" value="15"/>

    <!-- 日志的存放位置 -->
    <!--測試環境/開發環境-->
<!--
    <property name="dev.log.filePath" value="C:\\data\\log"/>  <!--開發環境是Windows時-->
-->
    <property name="dev.log.filePath" value="/data/log"/> <!--開發環境是MacOS時-->
    <!--生產環境-->
    <property name="pro.log.filePath" value="/data/log"/>

    <!-- 測試環境+開發環境. 多個使用逗號隔開. -->
    <springProfile name="test,dev">
        <!--輸出到控制台-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            </encoder>
        </appender>
        <!--按天生成日志-->
        <appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路徑 -->
            <!-- 當前的日志文件存放路徑 -->
            <file>${dev.log.filePath}${file.separator}${appName}-dev.log</file>
            <!-- 日志滾動策略 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- 歷史日志文件的存放路徑和名稱,日志歸檔文件 -->
                <FileNamePattern>
                    ${dev.log.filePath}${file.separator}history${file.separator}%d{yyyy-MM-dd}/${appName}-dev-%d{yyyy-MM-dd}.%i.log
                </FileNamePattern>
                <!--啟動項目時是否刪除歸檔的歷史日志文件-->
                <cleanHistoryOnStart>false</cleanHistoryOnStart>
                <!--日志文件最大的保存歷史數量,只有當每天生成且只生成一個文件時才表示保留天數-->
                <MaxHistory>${log.maxHistory}</MaxHistory>
                <maxFileSize>100MB</maxFileSize>
            </rollingPolicy>
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
        </appender>
        <logger name="org.springframework.boot" level="info" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile" />
        </logger>
        <logger name="root" level="info" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile" />
        </logger>
    </springProfile>

    <!-- 生產環境-->
    <springProfile name="pro">
        <!--按天生成日志-->
        <appender name="logFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路徑 -->
            <!-- 當前的日志文件存放路徑 -->
            <file>${pro.log.filePath}${file.separator}${appName}-prod.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- 歷史日志文件的存放路徑和名稱,日志歸檔文件 -->
                <FileNamePattern>
                    ${pro.log.filePath}${file.separator}history${file.separator}%d{yyyy-MM-dd}${file.separator}${appName}-prod-%d{yyyy-MM-dd}.%i.log
                </FileNamePattern>
                <!--啟動項目時是否刪除歸檔的歷史日志文件-->
                <cleanHistoryOnStart>false</cleanHistoryOnStart>
                <!--日志文件最大的保存歷史數量,只有當每天生成且只生成一個文件時才表示保留天數-->
                <MaxHistory>${log.maxHistory}</MaxHistory>
                <maxFileSize>100MB</maxFileSize>
            </rollingPolicy>
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
        </appender>

        <!-- logger標簽用於和appender進行綁定,並告訴logback哪些包(name屬性)的日志信息需要記錄 -->
        <!--logger將會繼承root標簽,在加上additivity="true"的屬性后 root標簽中的level將會被logger的level覆蓋-->

        <logger name="root" level="error" additivity="false">
            <appender-ref ref="logFile" />
        </logger>

        <logger name="org.springframework.boot" level="info" additivity="false">
            <appender-ref ref="logFile" />
        </logger>

        <logger name="com.gsww.api.gsdx" level="info" additivity="true">
            <appender-ref ref="logFile" />
        </logger>

    </springProfile>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM