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

springboot的logback的配置檔案

之前敲出來一個 logback 的配置檔案,防止以後找起來麻煩在這裡存個檔

  1. 修改了日誌輸出的內容
  2. 設定預設級別為 INFO
  3. 正常日誌 ( TRACE 到 WARN ) 輸出到單獨的資料夾
  4. 異常日誌 ( ERROR ) 輸出到單獨的資料夾
  5. 日誌檔案按天進行儲存,每天都會新建日誌檔案
  6. 日誌檔案儲存在當前專案目錄下

配置檔案命名為 logback-spring.xml 放到 resources 目錄下會自動生效,程式碼如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
    日誌級別:TRACE < DEBUG < INFO < WARN < ERROR
    scan:當配置檔案發生改變是否會自動載入,預設true
    scanPeriod:檢查配置檔案是否被改變的間隔時間,預設1分鐘
    debug:是否列印logback內部的日誌資訊,預設false
-->
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <!-- 配置控制檯日誌輸出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 設定列印規則 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!-- 【%d 時間】【%p 級別】【%c 所在類】【%m 所在函式】【%l 所在行】 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </layout>
    </appender>
    <!-- 配置檔案日誌輸出——info -->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 如果檢測到了ERROR日誌就不輸出,否則輸出 -->
        <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} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>info/%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <!-- 配置檔案日誌輸出——error -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 控制輸出級別為ERROR -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c{4}][%M][%L]——> %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>error/%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <!-- 所有日誌相關都要在root中註冊,被註冊的配置如果沒有設定日誌列印級別會預設會使用level -->
    <root level="INFO">
        <!-- 新增控制檯的日誌配置 -->
        <appender-ref ref="console" />
        <appender-ref ref="fileInfoLog" />
        <appender-ref ref="fileErrorLog" />
    </root>
</configuration>