Springboot 日志

Springboot默認(rèn)使用Logback作為日志框架實(shí)現(xiàn)

  1. 配置logback.xml
    <include resource="org/springframework/boot/logging/logback/base.xml" />

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <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>

    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <File>${LOG_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/error-%d{yyyyMMdd}.log.%i
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>500MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <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>
    
    <root level="INFO">
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>
    
    <logger name="org.springframework.boot" level="DEBUG"/>
    
</configuration>```
2. 配置application.properties
```#logback日志配置
logging.config=classpath:logback.xml
logging.path=D:/logFile```

其中l(wèi)ogging.path定義的是logback.xml中${LOG_PATH}
3. 在類中定義log
```package com.duck.load;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 啟動(dòng)加載數(shù)據(jù)
 */
@Component
@Order(value = 1)
public class DuckLoad implements CommandLineRunner{

    private static final Logger logger = LoggerFactory.getLogger(DuckLoad.class);

    public void run(String... args){
        logger.debug(this.getClass().getName() + "日志級(jí)別 Debug" + " DuckLoad 方法加載數(shù)據(jù)");
        logger.info(this.getClass().getName() + "日志級(jí)別 Info" + " DuckLoad 方法加載數(shù)據(jù)");
        logger.error(this.getClass().getName() + "日志級(jí)別 Error" + " DuckLoad 方法加載數(shù)據(jù)");
    }
}```
3. 啟動(dòng)查看后臺(tái)日志
![image.png](https://upload-images.jianshu.io/upload_images/13686663-32705fa57f851a55.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
因?yàn)槲覀兌x的日志級(jí)別是INFO,所以類中的DEBUG級(jí)別是不輸出的,我們指輸出INFO以上的日志(INFO ERROR)
4. 查看文件生成地址
![image.png](https://upload-images.jianshu.io/upload_images/13686663-31018fd94f52e7de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
日志文件生成路徑在配置文件中l(wèi)ogging.path定義

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、日志框架 市面上的日志框架; JUL、JCL、Jboss-logging、logback、log4j、log4...
    Class鳴閱讀 609評(píng)論 0 51
  • Logback是log4j框架的作者開發(fā)的新一代日志框架,它效率更高、能夠適應(yīng)諸多的運(yùn)行環(huán)境,同時(shí)天然支持SLF4...
    李2牛閱讀 4,212評(píng)論 0 16
  • 文章首發(fā)于微信公眾號(hào)《程序員果果》地址:https://mp.weixin.qq.com/s/6C9GzwI2m3...
    程序員果果閱讀 1,246評(píng)論 0 35
  • 日志框架 SLF4j 使用 日志記錄方法的調(diào)用,不應(yīng)該來直接調(diào)用日志的實(shí)現(xiàn)類,而是調(diào)用日志抽象層里面的方法 2.1...
    i_cyy閱讀 692評(píng)論 0 0
  • 目標(biāo) 使用async/await代替所有的fetch promise鏈?zhǔn)胶瘮?shù)。并且為每一種HTTP method完...
    張培_閱讀 4,153評(píng)論 0 1

友情鏈接更多精彩內(nèi)容