1. 程式人生 > 其它 >spring boot 讀書筆記3-Spring Boot使用slf4j進行日誌記錄

spring boot 讀書筆記3-Spring Boot使用slf4j進行日誌記錄

建立logback.xml檔案

<configuration>

    <!-- 格式化輸出:%date表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度 %msg:日誌訊息,%n是換行符-->
    <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />

    <!-- 定義日誌儲存的路徑,不要配置相對路徑 -->
    <property name="FILE_PATH" value="D:/logs/course03/demo.%d{yyyy-MM-dd}.%i.log" />

    <!-- 控制檯輸出日誌 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 按照上面配置的LOG_PATTERN來列印日誌 -->
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--每天生成一個日誌檔案,儲存15天的日誌檔案。rollingFile是用來切分檔案的 -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${FILE_PATH}</fileNamePattern>
            <!-- keep 15 days' worth of history -->
            <maxHistory>15</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日誌檔案的最大大小 -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- project default level -->
    <logger name="com.itcodai.course03" level="INFO" />

    <!-- 日誌輸出級別 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

  配置application.yml

logging:
  config: logback.xml
  level:
    com.itcodai.course03.dao: trace

  

建立controller呼叫

package com.example.spring3.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LogTest {
    private final static Logger logger = LoggerFactory.getLogger(LogTest.class);
    @RequestMapping("/log")
    public String testLog() {
        logger.debug("=====測試日誌debug級別列印====");
        logger.info("======測試日誌info級別列印=====");
        logger.error("=====測試日誌error級別列印====");
        logger.warn("======測試日誌warn級別列印=====");

        // 可以使用佔位符打印出一些引數資訊
        String str1 = "www.baidu.com";
        String str2 = "blog.csdn.net";
        logger.info("======測試1:{};測試2:{}", str1, str2);
        return "success";
    }
}