最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot Lombok @Slf4j日志處理教程(一篇足夠)

 更新時(shí)間:2025年09月03日 09:37:32   作者:FlyingCowUp  
@Slf4j是Lombok 庫(kù)提供的一個(gè)注解,用于自動(dòng)生成一個(gè)名為log的Logger實(shí)例,這篇文章主要介紹了spring boot Lombok @Slf4j日志處理的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

引言

在 Java 開(kāi)發(fā)中,日志記錄是一項(xiàng)至關(guān)重要的功能,它能幫助開(kāi)發(fā)者快速定位和解決問(wèn)題。然而,傳統(tǒng)的日志記錄方式需要在每個(gè)類中手動(dòng)創(chuàng)建日志對(duì)象,這會(huì)產(chǎn)生大量的樣板代碼,影響代碼的簡(jiǎn)潔性和可讀性。Lombok 庫(kù)提供的 @Slf4j 注解為我們解決了這一問(wèn)題,極大地簡(jiǎn)化了日志對(duì)象的創(chuàng)建過(guò)程。本文將深入講解 @Slf4j 注解,以及與之相關(guān)的 SLF4J、Logback 和 Log4j 之間的關(guān)系,同時(shí)詳細(xì)介紹日志級(jí)別、根日志和子日志的配置。

一、@Slf4j 注解的作用

@Slf4j 是 Lombok 庫(kù)提供的一個(gè)注解,其主要作用是在編譯時(shí)自動(dòng)為類生成一個(gè)基于 SLF4J(Simple Logging Facade for Java)的日志對(duì)象 log。使用該注解后,開(kāi)發(fā)者無(wú)需手動(dòng)編寫(xiě)創(chuàng)建日志對(duì)象的代碼,可直接使用 log 對(duì)象調(diào)用 SLF4J 的日志方法,如 log.info()、log.error() 等。

示例代碼

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyClass {
    public void doSomething() {
        log.info("Doing something...");
    }
}

在上述代碼中,使用 @Slf4j 注解后,MyClass 類中會(huì)自動(dòng)生成一個(gè)名為 log 的日志對(duì)象,在 doSomething 方法中可以直接使用該對(duì)象記錄日志信息。

二、SLF4J 和 Logback 或者 Log4j 的關(guān)系

(一)SLF4J

SLF4J 是一個(gè)日志門面,它為 Java 日志系統(tǒng)提供了統(tǒng)一的接口。開(kāi)發(fā)者在編寫(xiě)日志代碼時(shí)使用 SLF4J 的接口,這樣可以在不修改代碼的情況下,靈活地切換底層的日志實(shí)現(xiàn)框架。

(二)Logback 和 Log4j

Logback 和 Log4j 是具體的日志實(shí)現(xiàn)框架,它們實(shí)現(xiàn)了 SLF4J 定義的接口。Logback 是 Log4j 的繼任者,由 Log4j 的創(chuàng)始人開(kāi)發(fā),在性能和功能上有所改進(jìn)。

(三)關(guān)系總結(jié)

可以將 SLF4J 看作是一個(gè)中間層,開(kāi)發(fā)者通過(guò)它來(lái)調(diào)用日志功能,而 Logback 或 Log4j 則是實(shí)際執(zhí)行日志記錄操作的底層框架。這種設(shè)計(jì)使得開(kāi)發(fā)者可以根據(jù)項(xiàng)目的需求和實(shí)際情況選擇合適的日志實(shí)現(xiàn),而無(wú)需擔(dān)心代碼的修改。

三、為何用 @Slf4j 注解并正確配置 Logback.xml,日志就會(huì)輸出到控制臺(tái)

(一)@Slf4j 創(chuàng)建日志對(duì)象

使用 @Slf4j 注解后,類中會(huì)自動(dòng)生成一個(gè)基于 SLF4J 的 log 對(duì)象。當(dāng)調(diào)用 log 對(duì)象的日志方法(如 log.info())時(shí),SLF4J 會(huì)根據(jù)配置去尋找具體的日志實(shí)現(xiàn)框架。

(二)Logback.xml 配置日志輸出

Logback.xml 是 Logback 的配置文件,它定義了日志的輸出格式、輸出目標(biāo)等信息。在配置文件中,可以配置不同的 Appender(日志輸出目的地),如 ConsoleAppender(輸出到控制臺(tái))、FileAppender(輸出到文件)等。同時(shí),還可以配置日志的級(jí)別、日志的格式等。當(dāng)配置文件中指定了將日志輸出到控制臺(tái)的 Appender,并將其關(guān)聯(lián)到相應(yīng)的日志記錄器時(shí),日志信息就會(huì)按照配置的格式輸出到控制臺(tái)。

(三)示例配置

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

在上述配置中,定義了一個(gè)名為 CONSOLE 的 ConsoleAppender,并配置了日志的輸出格式。根日志的級(jí)別設(shè)置為 info,并將 CONSOLE Appender 關(guān)聯(lián)到根日志,這意味著所有不低于 info 級(jí)別的日志都會(huì)輸出到控制臺(tái)。

四、日志級(jí)別

日志級(jí)別用于控制哪些日志信息會(huì)被輸出,常見(jiàn)的日志級(jí)別從低到高依次為:

(一)TRACE 最詳細(xì)的日志級(jí)別,用于記錄程序執(zhí)行過(guò)程中的細(xì)枝末節(jié),通常僅在開(kāi)發(fā)和調(diào)試階段使用。

(二)DEBUG 用于開(kāi)發(fā)和測(cè)試環(huán)境,輸出調(diào)試信息,幫助開(kāi)發(fā)者定位問(wèn)題。

(三)INFO 記錄系統(tǒng)的正常運(yùn)行信息,如服務(wù)啟動(dòng)、用戶登錄等。

(四)WARN 表示可能存在潛在問(wèn)題,但不影響系統(tǒng)的正常運(yùn)行,如配置文件中的過(guò)期設(shè)置。

(五)ERROR 記錄系統(tǒng)出現(xiàn)的錯(cuò)誤信息,如數(shù)據(jù)庫(kù)連接失敗、空指針異常等。

日志系統(tǒng)會(huì)輸出級(jí)別不低于當(dāng)前設(shè)定日志級(jí)別的日志信息。例如,若日志級(jí)別設(shè)置為 INFO,那么 TRACE 和 DEBUG 級(jí)別的日志信息就不會(huì)被輸出。

五、配置根日志和子日志

(一)根日志(Root Logger)

根日志是日志系統(tǒng)的頂層日志記錄器,所有其他日志記錄器都是它的子記錄器。根日志為整個(gè)日志系統(tǒng)設(shè)置基礎(chǔ)的日志級(jí)別和默認(rèn)的 Appender。如果某個(gè)子日志記錄器沒(méi)有單獨(dú)配置日志級(jí)別或者 Appender,就會(huì)繼承根日志的設(shè)置。

示例配置

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

在上述配置中,根日志的級(jí)別設(shè)置為 info,并關(guān)聯(lián)了名為 CONSOLE 的 Appender,這意味著所有不低于 info 級(jí)別的日志都會(huì)輸出到控制臺(tái)。

(二)子日志記錄器(Child Loggers)

子日志記錄器以類的全限定名或包名作為名稱,可針對(duì)特定的類或包單獨(dú)設(shè)置日志級(jí)別和 Appender,實(shí)現(xiàn)更精細(xì)的日志控制。

示例配置

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>app.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="CONSOLE" />
    </root>
    <logger name="com.example.MyClass" level="debug">
        <appender-ref ref="FILE" />
    </logger>
</configuration>

在上述配置中,根日志的級(jí)別為 info,關(guān)聯(lián) CONSOLE Appender;com.example.MyClass 子日志記錄器的級(jí)別設(shè)置為 debug,并關(guān)聯(lián)了名為 FILE 的 Appender。這表示 MyClass 類中不低于 debug 級(jí)別的日志信息會(huì)輸出到 app.log 文件中。

六、總結(jié)

通過(guò)使用 Lombok 的 @Slf4j 注解,開(kāi)發(fā)者可以輕松地創(chuàng)建日志對(duì)象,避免了手動(dòng)編寫(xiě)樣板代碼的繁瑣。同時(shí),結(jié)合 SLF4J 日志門面和 Logback 或 Log4j 日志實(shí)現(xiàn)框架,以及合理配置日志級(jí)別、根日志和子日志,可以實(shí)現(xiàn)靈活、高效的日志記錄功能。在實(shí)際開(kāi)發(fā)中,開(kāi)發(fā)者可以根據(jù)項(xiàng)目的需求和實(shí)際情況,選擇合適的日志級(jí)別和配置方式,以滿足不同場(chǎng)景下的日志記錄需求。

到此這篇關(guān)于spring boot Lombok @Slf4j日志處理的文章就介紹到這了,更多相關(guān)spring boot Lombok @Slf4j日志處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shiro的運(yùn)行大致流程詳解

    Shiro的運(yùn)行大致流程詳解

    這篇文章主要介紹了Shiro的運(yùn)行大致流程詳解,Shiro和SpringSecurity都是Java領(lǐng)域中常用的安全框架,它們都提供了身份認(rèn)證和授權(quán)功能,可以幫助開(kāi)發(fā)者快速構(gòu)建安全的應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • Mybatis-Plus中的條件參數(shù)使用

    Mybatis-Plus中的條件參數(shù)使用

    這篇文章主要介紹了Mybatis-Plus中的條件參數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java實(shí)現(xiàn)數(shù)據(jù)更新和事件通知的觀察者模式

    Java實(shí)現(xiàn)數(shù)據(jù)更新和事件通知的觀察者模式

    Java觀察者模式是一種行為型設(shè)計(jì)模式,用于實(shí)現(xiàn)對(duì)象間的一對(duì)多依賴關(guān)系。當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),它的所有依賴對(duì)象都會(huì)收到通知并自動(dòng)更新。觀察者模式可以實(shí)現(xiàn)松耦合,增強(qiáng)了系統(tǒng)的可維護(hù)性和可拓展性
    2023-04-04
  • 一文詳解JDK、Maven、Spring?Boot各版本兼容性問(wèn)題

    一文詳解JDK、Maven、Spring?Boot各版本兼容性問(wèn)題

    Spring Boot 作為一個(gè)高度集成的框架,其版本兼容性涉及到多個(gè)方面,這篇文章主要介紹了JDK、Maven、Spring?Boot各版本兼容性問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • Spring中注解方式的異步請(qǐng)求

    Spring中注解方式的異步請(qǐng)求

    今天給大家整理了Spring中注解方式的異步請(qǐng)求的知識(shí)點(diǎn),對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • SpringBoot整合Mybatis簡(jiǎn)單實(shí)現(xiàn)增刪改查

    SpringBoot整合Mybatis簡(jiǎn)單實(shí)現(xiàn)增刪改查

    這篇文章主要介紹了SpringBoot整合Mybatis簡(jiǎn)單實(shí)現(xiàn)增刪改查,文章為圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • MyBatisPlus之id生成策略的方法

    MyBatisPlus之id生成策略的方法

    本文主要介紹了MyBatisPlus之id生成策略的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java中的靜態(tài)代碼塊與構(gòu)造代碼塊詳解

    Java中的靜態(tài)代碼塊與構(gòu)造代碼塊詳解

    靜態(tài)代碼塊在JVM加載類時(shí)執(zhí)行,僅執(zhí)行一次,用于初始化靜態(tài)變量或執(zhí)行一次性設(shè)置,構(gòu)造代碼塊在每次創(chuàng)建對(duì)象時(shí)執(zhí)行,用于實(shí)例變量的初始化或執(zhí)行創(chuàng)建對(duì)象時(shí)的公共邏輯,靜態(tài)代碼塊按定義順序執(zhí)行,構(gòu)造代碼塊在構(gòu)造方法前執(zhí)行
    2024-11-11
  • Mybatis-Plus中的selectByMap使用實(shí)例

    Mybatis-Plus中的selectByMap使用實(shí)例

    Mybatis-Plus來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查時(shí),將里面的函數(shù)試了個(gè)遍,接下來(lái)我就將使用selectByMap函數(shù)的簡(jiǎn)單測(cè)試實(shí)例寫(xiě)出來(lái),方便沒(méi)有使用過(guò)的朋友們快速上手,感興趣的可以了解一下
    2021-11-11
  • SpringBoot默認(rèn)配置的具體使用

    SpringBoot默認(rèn)配置的具體使用

    本文主要介紹了SpringBoot默認(rèn)配置的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08

最新評(píng)論

纳雍县| 慈利县| 阳新县| 宜春市| 冀州市| 太白县| 鹤壁市| 金昌市| 乌兰察布市| 绥棱县| 黄石市| 广水市| 通城县| 海阳市| 泰安市| 湖南省| 义马市| 乳山市| 慈溪市| 辽中县| 西盟| 育儿| 金秀| 罗甸县| 美姑县| 韩城市| 景泰县| 耿马| 阜新| 乌兰县| 亚东县| 嘉黎县| 平原县| 白山市| 达日县| 济宁市| 应用必备| 黑山县| 沁源县| 扶风县| 遂昌县|