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í)別為DEBUGadditivity="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)文章希望大家以后多多支持腳本之家!
- Spring Boot 日志級(jí)別及配置詳解
- 一文帶你搞定SpringBoot Log4j2日志配置文件
- SpringBoot日志配置SLF4J和Logback的方法實(shí)現(xiàn)
- Spring?Boot整合log4j2日志配置的詳細(xì)教程
- SpringBoot日志配置全過(guò)程
- Spring?Boot日志打印配置詳細(xì)介紹
- Springboot日志配置的實(shí)現(xiàn)示例
- SpringBoot3配置Logback日志滾動(dòng)文件的方法
- 如何為?Spring?Boot?項(xiàng)目配置?Logback?日志
- Spring Boot配置日志的實(shí)現(xiàn)步驟
相關(guān)文章
Myeclipse工程發(fā)布時(shí)端口占用問(wèn)題的解決方法
這篇文章主要介紹了Myeclipse工程發(fā)布時(shí)端口占用問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
深入剖析Java中Map.Entry的方法與實(shí)戰(zhàn)應(yīng)用
在Java集合框架中,Map.Entry扮演著連接鍵值對(duì)的橋梁角色,作為Map接口的內(nèi)部接口,它封裝了鍵值對(duì)的本質(zhì),是高效處理映射數(shù)據(jù)的核心工具,下面我我們就來(lái)深入剖析Map.Entry的概念,方法及實(shí)戰(zhàn)應(yīng)用2025-06-06
SpringBoot集成RabbitMQ實(shí)現(xiàn)用戶(hù)注冊(cè)的示例代碼
這篇文章主要介紹了SpringBoot集成RabbitMQ實(shí)現(xiàn)用戶(hù)注冊(cè)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
使用IntelliJ IDEA調(diào)式Stream流的方法步驟
本文主要介紹了使用IntelliJ IDEA調(diào)式Stream流的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Spring中的@RestControllerAdvice注解使用方法解析
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用方法解析,@RestControllerAdvice是Controller的增強(qiáng) 常用于全局異常的捕獲處理 和請(qǐng)求參數(shù)的增強(qiáng),需要的朋友可以參考下2024-01-01
Freemaker Replace函數(shù)的正則表達(dá)式運(yùn)用
這篇文章主要介紹了Freemaker Replace函數(shù)的正則表達(dá)式運(yùn)用 的相關(guān)資料,需要的朋友可以參考下2015-12-12
使用Gradle打依賴(lài)包失敗的問(wèn)題及解決
這篇文章主要介紹了使用Gradle打依賴(lài)包失敗的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
springboot啟動(dòng)過(guò)程中常用的回調(diào)示例詳解
springboot提供非常豐富回調(diào)接口,利用這些接口可以做非常多的事情,本文通過(guò)實(shí)例代碼給大家介紹springboot啟動(dòng)過(guò)程中常用的回調(diào)知識(shí)感興趣的朋友跟隨小編一起看看吧2022-01-01
maven父子工程多模塊統(tǒng)一管理版本號(hào)的解決方法
maven父子工程多模塊,每個(gè)模塊還都可以獨(dú)立存在,子模塊往往通常希望和父工程保持一樣的版本,如果每個(gè)工程單獨(dú)定義版本號(hào),后期變更打包也非常麻煩,,所以本文給大家介紹了maven父子工程多模塊如何管理統(tǒng)一的版本號(hào),需要的朋友可以參考下2024-09-09
關(guān)于IDEA中spring-cloud-starter-alibaba-nacos-discovery 無(wú)法引入問(wèn)題
這篇文章主要介紹了關(guān)于IDEA中spring-cloud-starter-alibaba-nacos-discovery 無(wú)法引入問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02

