(03) SpringBoot 日誌文件使用(logback)

SpringBoot項目使用logback.xml配置日誌輸出,如下配置文件是個參考:java

(1) 建議啓動時使用 logging.config 選項指定外部日誌文件。spring

例如:sql

(1) 配置文件直接指定 logging.config: /data/apps/config/xx/ordercenter-logback.xmlapache

(2) 啓動時候動態指定 日誌配置參數 : springboot

java -jar xx.jar --spring.profiles.active=product  --logging.config=/data/apps/config/xx/ordercenter-logback.xmlapp

(2) configuration tag,  scan 和 scanPeriod 屬性,用來講明:日誌配置文件可能會變化,按期掃描加載;debug

(3) root節點的控制檯輸出 stdout_appender, 通常用於本地調試,所以使用 springProfile 條件控制;調試

<configuration scan="true" scanPeriod="60 seconds">


    <!-- 定義變量: 日誌文件目錄 和 名稱 -->
    <property name="LogDir" value="/opt/logs/mysaas"/>
    <property name="BaseLogName" value="base-saas"/>
    <property name="ErrorLogName" value="error-saas"/>


    <!-- info log appender config -->
    <appender name="info_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LogDir}/${BaseLogName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LogDir}/${BaseLogName}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- maxHistory 設定的是 fileNamePattern 指定到的最小的分割單位; 上面指定到了天(小時),那麼此處表明30天(小時) -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <!-- 定義log level 爲 INF -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- error log appender config -->
    <appender name="error_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LogDir}/${ErrorLogName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LogDir}/${ErrorLogName}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- console -->
    <appender name="stdout_appender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 定義 LogLevel 和 Appender -->
    <root level="INFO">
        <appender-ref ref="info_appender"/>
        <appender-ref ref="error_appender"/>

        <!-- 若是本地調試(spring profiles爲 dev),須要控制檯看日誌: 放開下面stdout_appender這一行 -->
        <springProfile name="dev">
            <appender-ref ref="stdout_appender"/>
        </springProfile>

    </root>

    <!-- third part library logger config -->
    <!-- <logger name="org.apache" level="WARN"/> -->
    <!-- <logger name="java.sql" level="debug"/>  -->
</configuration>

 

參考文檔:日誌

默認日誌logback配置解析 http://tengj.top/2017/04/05/springboot7/code

logback 配置詳解 https://www.jianshu.com/p/1ded57f6c4e3

相關文章
相關標籤/搜索