1. 程式人生 > 實用技巧 >logback-spring檔案配置

logback-spring檔案配置

1. SpringBoot專案resource資原始檔下新建logback-spring.xml或logback.xml檔案

<?xml version="1.0" encoding="utf-8"?>
<!--
    scan: 當此屬性設定為true時,配置檔案如果發生改變,將會被重新載入,預設值為true。
    scanPeriod: 設定監測配置檔案是否有修改的時間間隔,如果沒有給出時間單位,預設單位是毫秒。當scan為true時,此屬性生效。預設的時間間隔為1分鐘。
    debug: 當此屬性設定為true時,將打印出logback內部日誌資訊,實時檢視logback執行狀態。預設值為false。
--> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <property resource="logback.xml"/> <!-- 定義日誌檔名稱 --> <property name="appName" value="task-system"/> <define name="LOG_HOME" class="com.hkx.logging.util.LogHomeProperty" /> <!-- 日誌輸出格式: %d:表示日期時間 %thread:表示執行緒名 %-5level, %-5p:級別從左顯示5個字元寬度 %logger{36}:輸出logger名,{36}表示logger名最大佔用的字元位數,{0}表示最簡短logger名(不包含包名) %msg:日誌訊息 %n:換行符
--> <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd' 'HH:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </layout> </
appender> <!-- 獲取比info級別高(包括info級別)但除error級別的日誌 --> <appender name="INFO-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 指定日誌檔案的名稱 --> <file>${LOG_HOME}/${appName}.log</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <pattern>%d{yyyy-MM-dd' 'HH:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> <!--滾動策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路徑--> <fileNamePattern>${LOG_HOME}/logs/${appName}-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日誌保留天數 --> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <!-- 獲取error級別的日誌 --> <appender name="ERROR-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 指定日誌檔案的名稱 --> <file>${LOG_HOME}/${appName}.error.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <pattern>%d{yyyy-MM-dd' 'HH:mm:ss.sss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> <!--滾動策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路徑--> <fileNamePattern>${LOG_HOME}/error/${appName}-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日誌保留天數 --> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <root level="info"> <appender-ref ref="CONSOLE-LOG" /> <appender-ref ref="INFO-LOG" /> <appender-ref ref="ERROR-LOG" /> </root> <!-- 非同步輸出 --> <appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丟失日誌.預設的,如果佇列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 --> <discardingThreshold>0</discardingThreshold> <!-- 更改預設的佇列的深度,該值會影響效能.預設值為256 --> <queueSize>256</queueSize> <!-- 新增附加的appender,最多隻能新增一個 --> <appender-ref ref="INFO-LOG"/> </appender> <appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丟失日誌.預設的,如果佇列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 --> <discardingThreshold>0</discardingThreshold> <!-- 更改預設的佇列的深度,該值會影響效能.預設值為256 --> <queueSize>256</queueSize> <!-- 新增附加的appender,最多隻能新增一個 --> <appender-ref ref="ERROR-LOG"/> </appender> </configuration>

  另附一篇超詳細說明https://www.cnblogs.com/warking/p/5710303.html