springboot中l(wèi)ogback日志配置的詳細(xì)說(shuō)明
在 Spring Boot 項(xiàng)目中,默認(rèn)使用 Logback 作為日志框架。Logback 是一個(gè)高效、靈活的日志記錄工具,支持多種日志格式和輸出目標(biāo)(如控制臺(tái)、文件等)。通過(guò)配置 logback-spring.xml
文件,可以自定義日志的輸出方式和格式。
以下是 Spring Boot 中 Logback 日志配置的詳細(xì)說(shuō)明:
1. 創(chuàng)建或修改 logback-spring.xml
在 Spring Boot 項(xiàng)目中,默認(rèn)會(huì)使用 logback-spring.xml
文件來(lái)配置日志。如果該文件不存在,可以在 src/main/resources
目錄下創(chuàng)建一個(gè)。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 配置控制臺(tái)輸出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 配置文件輸出 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/app-%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 配置錯(cuò)誤日志輸出 --> <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/error.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/error-%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 根日志配置 --> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> <!-- 自定義包的日志級(jí)別 --> <logger name="com.example" level="DEBUG" additivity="false"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </logger> <!-- 配置錯(cuò)誤日志 --> <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" level="ERROR"> <appender-ref ref="ERROR_FILE"/> </logger> </configuration>
2. 配置說(shuō)明
2.1 日志格式
通過(guò) <encoder>
標(biāo)簽可以配置日志的輸出格式。常用占位符包括:
%d{yyyy-MM-dd HH:mm:ss.SSS}
:日期和時(shí)間[%thread]
:線(xiàn)程名%-5level
:日志級(jí)別(右對(duì)齊,寬度 5)%logger{36}
:類(lèi)名或包名(最多顯示 36 個(gè)字符)%msg
:日志消息
2.2 控制臺(tái)輸出
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
配置控制臺(tái)輸出,日志會(huì)直接打印在終端。
2.3 文件輸出
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
文件輸出支持滾動(dòng)策略,按天生成日志文件:
logs/app.log
:當(dāng)前日志文件logs/app-yyyy-MM-dd.log
:歷史日志文件
滾動(dòng)策略參數(shù)說(shuō)明:
<fileNamePattern>
:歷史日志文件的命名規(guī)則<maxHistory>
:保留 30 天的歷史日志
2.4 錯(cuò)誤日志輸出
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
專(zhuān)門(mén)記錄錯(cuò)誤級(jí)別的日志,通過(guò) <filter>
標(biāo)簽設(shè)置只記錄 ERROR
級(jí)別的日志。
2.5 根日志配置
<root level="INFO">
設(shè)置根日志的級(jí)別為 INFO
,并將輸出目標(biāo)指向控制臺(tái)和文件。
2.6 自定義包的日志級(jí)別
通過(guò) <logger>
標(biāo)簽可以為特定包或類(lèi)配置不同的日志級(jí)別:
name="com.example"
:指定包名level="DEBUG"
:設(shè)置日志級(jí)別為DEBUG
additivity="false"
:表示不繼承父 logger 的配置
3. 配置生效條件
確保 logback-spring.xml
文件位于 src/main/resources
目錄下。如果項(xiàng)目中沒(méi)有該文件,Spring Boot 會(huì)使用默認(rèn)日志配置。
4. 常見(jiàn)問(wèn)題
4.1 日志文件不生成
- 檢查
<file>
和<fileNamePattern>
的路徑是否正確。 - 確保程序有寫(xiě)入權(quán)限。
4.2 自定義包的日志不生效
- 確保
name
屬性與實(shí)際類(lèi)名或包名完全一致。 - 確保
additivity="false"
,避免繼承父 logger 的配置。
4.3 日志級(jí)別無(wú)效
- 確保
<logger>
標(biāo)簽中的level
配置正確(如DEBUG
,INFO
,ERROR
)。 - 確保沒(méi)有其他配置覆蓋了該日志級(jí)別。
5. 總結(jié)
通過(guò)以上配置,可以靈活地定義 Spring Boot 應(yīng)用的日志輸出方式和格式??梢愿鶕?jù)實(shí)際需求調(diào)整日志級(jí)別、輸出目標(biāo)和文件路徑,從而更好地監(jiān)控和調(diào)試應(yīng)用。
到此這篇關(guān)于springboot中l(wèi)ogback日志配置的詳細(xì)說(shuō)明的文章就介紹到這了,更多相關(guān)springboot logback日志配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot3配置Logback日志滾動(dòng)文件的方法
- SpringBoot+logback默認(rèn)日志的配置和使用方式
- IDEA?設(shè)置?SpringBoot?logback?彩色日志的解決方法?附配置文件
- SpringBoot日志進(jìn)階實(shí)戰(zhàn)之Logback配置經(jīng)驗(yàn)和方法
- Springboot使用Logback實(shí)現(xiàn)日志配置與異常記錄
- springboot]logback日志框架配置教程
- SpringBoot項(xiàng)目的logback日志配置(包括打印mybatis的sql語(yǔ)句)
- springboot配置logback日志管理過(guò)程詳解
- 基于logback 實(shí)現(xiàn)springboot超級(jí)詳細(xì)的日志配置
相關(guān)文章
SpringBoot使用@Value實(shí)現(xiàn)給靜態(tài)變量注入值
這篇文章主要介紹了SpringBoot使用@Value實(shí)現(xiàn)給靜態(tài)變量注入值的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07使用Java快速將Web中表格轉(zhuǎn)換成Excel的方法
在平時(shí)做系統(tǒng)項(xiàng)目時(shí),經(jīng)常會(huì)需要做導(dǎo)出功能,下面這篇文章主要給大家介紹了關(guān)于使用Java快速將Web中表格轉(zhuǎn)換成Excel的相關(guān)資料,需要的朋友可以參考下2023-06-06Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(25)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)
釘釘?shù)某霈F(xiàn)為企業(yè)節(jié)約了大量人力成本,其中也開(kāi)放了大量的外部api接口方便企業(yè)使用。本文主要介紹了Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn),感興趣的可以了解一下2021-11-11spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄
這篇文章主要為大家介紹了spring-boot項(xiàng)目啟動(dòng)遲緩異常排查解決記錄,突然在本地啟動(dòng)不起來(lái)了,表象特征就是在本地IDEA上運(yùn)行時(shí),進(jìn)程卡住也不退出,應(yīng)用啟動(dòng)時(shí)加載相關(guān)組件的日志也不輸出2022-02-02Java運(yùn)行時(shí)jar終端輸出的中文日志亂碼兩種解決方式
jar包啟動(dòng),今天java開(kāi)發(fā)過(guò)來(lái)找,說(shuō)jar包啟動(dòng)日志是亂碼,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時(shí)jar終端輸出的中文日志亂碼的兩種解決方式,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01Mybatis操作數(shù)據(jù)時(shí)出現(xiàn):java.sql.SQLSyntaxErrorException:?Unknown?c
這篇文章主要介紹了Mybatis操作數(shù)據(jù)時(shí)出現(xiàn):java.sql.SQLSyntaxErrorException:?Unknown?column?'XXX'?in?'field?list',需要的朋友可以參考下2023-04-04