Spring Boot 配置LogBack日誌框架

本配置選用的是SLF4J+Logback的組合,同時運用了lombok

pom.xml

<!--引用日誌框架LogBack-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

添加logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <contextName>logback</contextName>
    <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!-- 滾動策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 輸出路徑 -->
            <fileNamePattern>app_log/log/app.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>

        <!-- 設置滾動策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路徑 -->
            <fileNamePattern>app_log/log/app.err.%d.log</fileNamePattern>

            <!-- 控制保留的歸檔文件的最大數量,超出數量就刪除舊文件,假設設置每個月滾動,
            <maxHistory> 是1,則只保存最近1個月的文件,刪除之前的舊文件 -->
            <MaxHistory>1</MaxHistory>
        </rollingPolicy>
    </appender>
    <!--注意這個節點要寫在最後 -->
    <root level="TRACE">
        <appender-ref ref="consoleApp"/>
        <appender-ref ref="fileInfoApp"/>
        <appender-ref ref="fileErrorApp"/>
    </root>
</configuration>

日誌級別如下:

ERROR, WARN, INFO, DEBUG or TRACE

默認是INFO級別,可以寫個測試淚來驗證

編寫測試類

package com.yuan.training.controller;

import lombok.extern.slf4j.Slf4j;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author haoxin.yuan
 * @date 2020/1/11 15:54
 */
@RestController
@Slf4j
public class LogBackTest {
    //注意Logger和LoggerFactory類都是org.slf4j包裏的。

    @RequestMapping("/log")
    public String testLog(){
        //測試日誌的級別
        log.trace("This is {}","trace");
        log.debug("This is {}","debug");
        log.info("This is {}","info");
        log.warn("This is {}","warn");
        log.error("This is {}","error");
        return "sussecc";
    }
}

測試結果如下:

 

發佈了19 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章