Logback在SpringBoot中的詳細(xì)配置教程
1. Logback 配置文件
Spring Boot 默認(rèn)會(huì)加載 classpath 下的 logback-spring.xml(推薦)或 logback.xml 作為 Logback 的配置文件。
?推薦使用 logback-spring.xml,因?yàn)?Spring Boot 提供了擴(kuò)展支持(例如基于 Profile 的配置)。
配置文件位置
放在 src/main/resources/ 目錄下。
2. 基礎(chǔ)配置示例
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!-- 定義變量 -->
<property name="LOG_PATH" value="./logs" />
<property name="LOG_FILE" value="myapp" />
<!-- 控制臺(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>
<!-- 滾動(dòng)文件輸出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志級(jí)別和輸出源配置 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
<!-- 指定包或類的日志級(jí)別 -->
<logger name="com.example.demo" level="DEBUG" />
</configuration>3. 關(guān)鍵配置項(xiàng)說(shuō)明
Appender(日志輸出器)
?ConsoleAppender: 輸出日志到控制臺(tái)。
?RollingFileAppender: 輸出到文件并支持滾動(dòng)(按時(shí)間、大小分割)。
- SizeAndTimeBasedRollingPolicy: 根據(jù)時(shí)間和文件大小滾動(dòng)。
- maxFileSize: 單個(gè)文件最大大小。
- maxHistory: 保留的歷史日志文件數(shù)量。
- totalSizeCap: 日志文件總大小限制。
Encoder(日志格式化)
<pattern> 定義日志格式,常用占位符:
- %d: 日期時(shí)間
- %thread: 線程名
- %-5level: 日志級(jí)別(左對(duì)齊,寬度5)
- %logger{36}: 日志輸出者的名稱(最長(zhǎng)36字符)
- %msg: 日志消息
- %n: 換行符
Logger 和 Root Logger
- <root>: 根日志配置,所有日志默認(rèn)繼承此配置。
- <logger>: 針對(duì)特定包或類配置日志級(jí)別。
4. Spring Boot 特有功能
通過(guò) application.properties 覆蓋配置
在 application.properties 中可以覆蓋部分日志配置:
# 設(shè)置根日志級(jí)別 logging.level.root=INFO # 設(shè)置特定包日志級(jí)別 logging.level.com.example.demo=DEBUG # 日志文件路徑 logging.file.path=./logs logging.file.name=./logs/app.log
按 Profile 配置日志
在 logback-spring.xml 中使用 <springProfile> 實(shí)現(xiàn)多環(huán)境配置:
<springProfile name="dev">
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</springProfile>
5. 高級(jí)配置
異步日志
使用 AsyncAppender 提升性能:
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
<!-- 隊(duì)列大小,超出此值會(huì)丟棄 TRACE/DEBUG 日志 -->
<queueSize>256</queueSize>
</appender>
彩色日志輸出
在 ConsoleAppender 中啟用顏色:
<encoder>
<pattern>%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%-5level) %clr(${PID}){magenta} --- [%thread] %clr(%logger{36}){cyan} : %msg%n</pattern>
</encoder>
6. 常見(jiàn)問(wèn)題解決
配置文件未生效
- 確認(rèn)文件名是 logback-spring.xml 且位于 src/main/resources。
- 檢查是否有其他日志框架(如 Log4j2)沖突,排除相關(guān)依賴。
日志文件未滾動(dòng)
- 檢查 RollingFileAppender 配置,確保路徑和文件名合法。
- 確保 maxHistory 和 totalSizeCap 設(shè)置合理。
到此這篇關(guān)于Logback在SpringBoot中的詳細(xì)配置教程的文章就介紹到這了,更多相關(guān)SpringBoot配置Logback內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis中TypeAliasRegistry的作用及使用方法
Mybatis中的TypeAliasRegistry是一個(gè)類型別名注冊(cè)表,它的作用是為Java類型建立別名,使得在Mybatis配置文件中可以使用別名來(lái)代替完整的Java類型名。使用TypeAliasRegistry可以簡(jiǎn)化Mybatis配置文件的編寫,提高配置文件的可讀性和可維護(hù)性2023-05-05
Java序列化與serialVersionUID生成方法詳解
在Java開(kāi)發(fā)中,對(duì)象的序列化與反序列化是一個(gè)關(guān)鍵特性,廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)傳輸?shù)葓?chǎng)景,而serialVersionUID作為序列化機(jī)制中的一個(gè)重要標(biāo)識(shí),用于確保類版本的一致性,本文將詳細(xì)講解如何生成serialVersionUID,并結(jié)合具體代碼實(shí)例,幫助讀者更好地理解和應(yīng)用這一概念2025-06-06
Spring Security 圖片驗(yàn)證碼功能的實(shí)例代碼
spring security是一系列的過(guò)濾器鏈,所以在這里驗(yàn)證碼也聲明為過(guò)濾器,加在過(guò)濾器鏈的 登錄過(guò)濾器之前,然后自定義一個(gè)異常類,來(lái)響應(yīng)驗(yàn)證碼的錯(cuò)誤信息.這篇文章主要介紹了Spring Security 圖片驗(yàn)證碼,需要的朋友可以參考下2018-03-03
使用IDEA配置Maven搭建開(kāi)發(fā)框架ssm教程
這篇文章主要為大家詳細(xì)介紹了使用IDEA配置Maven搭建開(kāi)發(fā)框架ssm教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
cmd中javac命令無(wú)法運(yùn)行(java指令能運(yùn)行)解決步驟
這篇文章主要介紹了在安裝JDK后,執(zhí)行javac命令沒(méi)有返回值的問(wèn)題,可能是由于命令提示符窗口緩存問(wèn)題、系統(tǒng)路徑優(yōu)先級(jí)問(wèn)題、文件權(quán)限問(wèn)題或命令行輸入問(wèn)題,文中通過(guò)代碼將解決的步驟介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
解決SpringBoot項(xiàng)目中l(wèi)og4j與logback的Jar包沖突問(wèn)題
這篇文章主要給大家介紹了解決SpringBoot項(xiàng)目中l(wèi)og4j與logback的Jar包沖突問(wèn)題,文中有詳細(xì)的解決方法和沖突的原因,有遇到相同問(wèn)題的朋友可以參考閱讀本文2023-10-10

