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

SpringBoot日志的使用解讀

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

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

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

1.日期時(shí)間

2.日志級(jí)別(從上至下級(jí)別越來(lái)越高):

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

3.進(jìn)程ID

4.---:消息分隔符

5.線程名:用[]包裹

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

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

二.使用

@Service
public class UserService{//創(chuàng)建UserService類(lèi)對(duì)應(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注解,會(huì)自動(dòng)創(chuàng)建變量名為log的Logger

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

三.配置

通過(guò)yml文件配置日志(以logging開(kāi)頭的日志)

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

原因:

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

通過(guò)xml配置日志

  • appender:負(fù)責(zé)寫(xiě)日志的組件(輸出到控制臺(tái)、文件、日志服務(wù)器、消息隊(duì)列等等)
  • appender-ref:引用某個(gè)appender
  • layout:配置日志輸出格式
  • springProfile:配置日志在開(kāi)發(fā)/測(cè)試/生產(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"><!--開(kāi)發(fā)環(huán)境的日志配置-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--輸出到控制臺(tái)-->
            <layout><!--設(shè)置日志格式-->
                <pattern>%d{yyyy-MM-dd HH:mm:ss}[%thread] %-5level %logger -%msg%n</pattern>
            </layout>
        </appender>
        <root level="info"><!--設(shè)置日志等級(jí) 及 生效appender-->
            <appender-ref ref="STDOUT"/>
        </root>
    </springProfile>
    <springProfile name="test"><!--測(cè)試環(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><!--輸出到文件,文件會(huì)根據(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)文章

  • Java8日期時(shí)間類(lèi)LocalDateTime比較大小舉例

    Java8日期時(shí)間類(lèi)LocalDateTime比較大小舉例

    LocalDate是Java?8中的日期類(lèi)之一,它表示一個(gè)日期,下面這篇文章主要給大家介紹了關(guān)于Java8日期時(shí)間類(lèi)LocalDateTime比較大小的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄

    使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄

    這篇文章主要介紹了使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 利用寶塔配置jdk環(huán)境的詳細(xì)圖文教程

    利用寶塔配置jdk環(huán)境的詳細(xì)圖文教程

    最近在寶塔面板上創(chuàng)建一個(gè)網(wǎng)站,為Java應(yīng)用程序提供運(yùn)行環(huán)境,所以下面這篇文章主要給大家介紹了關(guān)于利用寶塔配置jdk環(huán)境的詳細(xì)圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • java實(shí)現(xiàn)字符串和數(shù)字轉(zhuǎn)換工具

    java實(shí)現(xiàn)字符串和數(shù)字轉(zhuǎn)換工具

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)字符串和數(shù)字轉(zhuǎn)換工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Spring IOC簡(jiǎn)單理解及創(chuàng)建對(duì)象的方式

    Spring IOC簡(jiǎn)單理解及創(chuàng)建對(duì)象的方式

    這篇文章主要介紹了Spring IOC簡(jiǎn)單理解及創(chuàng)建對(duì)象的方式,本文通過(guò)兩種方式給大家介紹創(chuàng)建對(duì)象的方法,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • SpringBoot實(shí)現(xiàn)登錄注冊(cè)的三種基本方式

    SpringBoot實(shí)現(xiàn)登錄注冊(cè)的三種基本方式

    本文簡(jiǎn)要介紹了cookie、session、JWT三種方式實(shí)現(xiàn)登錄認(rèn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • 詳解Java面向?qū)ο笾械睦^承

    詳解Java面向?qū)ο笾械睦^承

    這篇文章主要介紹了詳解Java面向?qū)ο笾械睦^承,繼承提高代碼的復(fù)用性:通過(guò)繼承,子類(lèi)可以直接使用父類(lèi)的屬性和方法,不需要重復(fù)定義,需要的朋友可以參考下
    2023-05-05
  • java實(shí)現(xiàn)簡(jiǎn)單三子棋游戲

    java實(shí)現(xiàn)簡(jiǎn)單三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Mybatis攔截器實(shí)現(xiàn)公共字段填充的示例代碼

    Mybatis攔截器實(shí)現(xiàn)公共字段填充的示例代碼

    本文介紹了使用Spring Boot和MyBatis實(shí)現(xiàn)公共字段的自動(dòng)填充功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Java的"偽泛型"變"真泛型"后對(duì)性能的影響

    Java的"偽泛型"變"真泛型"后對(duì)性能的影響

    泛型擦除本質(zhì)上就是擦除與泛型相關(guān)的一切信息,例如參數(shù)化類(lèi)型、類(lèi)型變量等,Javac還將在需要時(shí)進(jìn)行類(lèi)型檢查及強(qiáng)制類(lèi)型轉(zhuǎn)換,甚至在必要時(shí)會(huì)合成橋方法,這篇文章主要介紹了Java的"偽泛型"變"真泛型"后對(duì)性能的影響,需要的朋友可以參考下
    2025-05-05

最新評(píng)論

琼中| 韶山市| 万安县| 耒阳市| 东光县| 泰顺县| 福鼎市| 乌拉特前旗| 康乐县| 林芝县| 巴青县| 子长县| 温泉县| 西安市| 苍溪县| 临高县| 武穴市| 长丰县| 库尔勒市| 准格尔旗| 宣化县| 游戏| 渝北区| 登封市| 丹东市| 周至县| 招远市| 温泉县| 库伦旗| 澄江县| 鸡东县| 亚东县| 虎林市| 建德市| 峨眉山市| 汪清县| 金阳县| 龙州县| 二手房| 公主岭市| 吉林省|