欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot日志的使用解讀

 更新時(shí)間:2025年02月18日 10:54:55   作者:Exill  
本文主要介紹了SpringBoot中日志的使用方法,包括默認(rèn)輸出格式、使用Lombok簡化日志代碼、通過yml和xml配置日志等

SpringBoot默認(rèn)使用SLF4J作為日志門面(相當(dāng)于接口),Logback作為日志實(shí)現(xiàn)(實(shí)現(xiàn)可切換)

一.默認(rèn)輸出格式

1.日期時(shí)間

2.日志級別(從上至下級別越來越高):

  • TRACE:追蹤框架流程日志,一般不使用
  • DEBUG:調(diào)試日志
  • INFO:關(guān)鍵、感興趣日志
  • WARN:警告日志
  • ERROR:錯(cuò)誤日志

3.進(jìn)程ID

4.---:消息分隔符

5.線程名:用[]包裹

6.Logger名:產(chǎn)生這條日志的類名

7.消息:具體日志內(nèi)容

二.使用

@Service
public class UserService{//創(chuàng)建UserService類對應(yīng)的Logger(SLF4J包下)
    private Logger logger= LoggerFactory.getLogger(getClass());
    public void useLogger() {//使用                
        Loggerlogger.trace("TRACE");
        logger.debug("DEBUG");
        logger.info("INFO {} {}", "參1", "參2");
        logger.warn("WARN");
        logger.error("ERROR");
}

導(dǎo)入lombok后使用@Slf4j注解,會自動創(chuàng)建變量名為log的Logger

只會輸出INFO及以上的日志級別,因?yàn)镾pringBoot默認(rèn)日志級別為INFO

三.配置

通過yml文件配置日志(以logging開頭的日志)

項(xiàng)目中通常不使用該方式

原因:

  1. 日志需要較多自定義,放yml里導(dǎo)致其他配置也難以閱讀
  2. yml提供的日志配置只支持logback實(shí)現(xiàn),切換實(shí)現(xiàn)后不可用
  3. yml提供的logback配置不夠全面

通過xml配置日志

  • appender:負(fù)責(zé)寫日志的組件(輸出到控制臺、文件、日志服務(wù)器、消息隊(duì)列等等)
  • appender-ref:引用某個(gè)appender
  • layout:配置日志輸出格式
  • springProfile:配置日志在開發(fā)/測試/生產(chǎn)環(huán)境生效
  • springProperty:在xml配置中引用yml的配置值
  • property:在xml中定義值

logback-spring.xml模板示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--讀取yml配置中的spring.application.name值賦值給FILE_NAME變量-->
    <springProperty scope="context" name="FILE_NAME" source="spring.application.name"/><!--定義FILE_PATH變量-->
    <property name="FILE_PATH" value="./logs"/>
    <springProfile name="dev"><!--開發(fā)環(huán)境的日志配置-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--輸出到控制臺-->
            <layout><!--設(shè)置日志格式-->
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="info"><!--設(shè)置日志等級 及 生效appender-->
            <appender-ref ref="STDOUT"/>
        </root>
    </springProfile>
    <springProfile name="test"><!--測試環(huán)境的日志配置-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender><!--輸出到文件,文件會根據(jù)日期、大小進(jìn)行歸檔-->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--文件路徑-->
                <fileNamePattern>${FILE_PATH}/${FILE_NAME}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <maxHistory>30</maxHistory><!--文件保存天數(shù)-->
                <maxFileSize>10MB</maxFileSize><!--一個(gè)文件最大值-->
            </rollingPolicy>
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="FILE"/>
        </root>
    </springProfile>
    <springProfile name="prod"><!--生產(chǎn)環(huán)境的日志配置-->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${FILE_PATH}/${FILE_NAME}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <maxHistory>30</maxHistory>
                <maxFileSize>10MB</maxFileSize>
            </rollingPolicy>
            <layout>
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="error">
            <appender-ref ref="FILE"/>
        </root>
    </springProfile>
</configuration>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)多租戶架構(gòu)

    SpringBoot實(shí)現(xiàn)多租戶架構(gòu)

    在SpringBoot中可以通過多數(shù)據(jù)源和動態(tài)路由來實(shí)現(xiàn)多租戶機(jī)制,本文主要介紹了SpringBoot實(shí)現(xiàn)多租戶架構(gòu),具有一定的參考價(jià)值,感興趣的可以里哦啊接一下
    2024-03-03
  • Java 8 Lambda 表達(dá)式比較器使用示例代碼

    Java 8 Lambda 表達(dá)式比較器使用示例代碼

    這篇文章主要介紹了Java 8 Lambda 表達(dá)式比較器使用示例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • springboot+mybatis報(bào)錯(cuò)找不到實(shí)體類的問題

    springboot+mybatis報(bào)錯(cuò)找不到實(shí)體類的問題

    這篇文章主要介紹了springboot+mybatis報(bào)錯(cuò)找不到實(shí)體類的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java 線程方法join簡單用法實(shí)例總結(jié)

    java 線程方法join簡單用法實(shí)例總結(jié)

    這篇文章主要介紹了java 線程方法join簡單用法,結(jié)合實(shí)例形式總結(jié)分析了Java線程join方法的功能、原理及使用技巧,需要的朋友可以參考下
    2019-11-11
  • Java中的內(nèi)存泄露問題和解決辦法

    Java中的內(nèi)存泄露問題和解決辦法

    大家好,本篇文章主要講的是Java中的內(nèi)存泄露問題和解決辦法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • SpringCloud中的@RefreshScope注解與使用場景方式

    SpringCloud中的@RefreshScope注解與使用場景方式

    SpringCloud中的@RefreshScope注解用于動態(tài)刷新Bean配置,解決外部配置變化時(shí)的問題,避免重啟應(yīng)用,通過本文的詳細(xì)介紹,希望讀者能夠更好地掌握@RefreshScope的使用技巧,在實(shí)際項(xiàng)目中靈活應(yīng)用,提升微服務(wù)應(yīng)用的動態(tài)配置管理能力
    2024-12-12
  • SpringCloud分布式鏈路跟蹤的方法

    SpringCloud分布式鏈路跟蹤的方法

    這篇文章主要介紹了SpringCloud分布式鏈路跟蹤的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Java等待喚醒機(jī)制線程通信原理解析

    Java等待喚醒機(jī)制線程通信原理解析

    這篇文章主要介紹了Java等待喚醒機(jī)制線程通信原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java多線程使用mdc追蹤日志方式

    java多線程使用mdc追蹤日志方式

    這篇文章主要介紹了java多線程使用mdc追蹤日志方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 實(shí)例解析Java中的構(gòu)造器初始化

    實(shí)例解析Java中的構(gòu)造器初始化

    這篇文章主要通過實(shí)例解析Java中的構(gòu)造器初始化,代碼很簡單,敘述很明確,需要的朋友可以了解下。
    2017-09-09

最新評論