Logback在SpringBoot中的詳細(xì)配置教程
1. Logback 配置文件
Spring Boot 默認(rèn)會加載 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" /> <!-- 控制臺輸出 --> <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>${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> <!-- 日志級別和輸出源配置 --> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> <!-- 指定包或類的日志級別 --> <logger name="com.example.demo" level="DEBUG" /> </configuration>
3. 關(guān)鍵配置項(xiàng)說明
Appender(日志輸出器)
?ConsoleAppender: 輸出日志到控制臺。
?RollingFileAppender: 輸出到文件并支持滾動(按時(shí)間、大小分割)。
- SizeAndTimeBasedRollingPolicy: 根據(jù)時(shí)間和文件大小滾動。
- maxFileSize: 單個文件最大大小。
- maxHistory: 保留的歷史日志文件數(shù)量。
- totalSizeCap: 日志文件總大小限制。
Encoder(日志格式化)
<pattern> 定義日志格式,常用占位符:
- %d: 日期時(shí)間
- %thread: 線程名
- %-5level: 日志級別(左對齊,寬度5)
- %logger{36}: 日志輸出者的名稱(最長36字符)
- %msg: 日志消息
- %n: 換行符
Logger 和 Root Logger
- <root>: 根日志配置,所有日志默認(rèn)繼承此配置。
- <logger>: 針對特定包或類配置日志級別。
4. Spring Boot 特有功能
通過 application.properties 覆蓋配置
在 application.properties 中可以覆蓋部分日志配置:
# 設(shè)置根日志級別 logging.level.root=INFO # 設(shè)置特定包日志級別 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. 高級配置
異步日志
使用 AsyncAppender 提升性能:
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="FILE" /> <!-- 隊(duì)列大小,超出此值會丟棄 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. 常見問題解決
配置文件未生效
- 確認(rèn)文件名是 logback-spring.xml 且位于 src/main/resources。
- 檢查是否有其他日志框架(如 Log4j2)沖突,排除相關(guān)依賴。
日志文件未滾動
- 檢查 RollingFileAppender 配置,確保路徑和文件名合法。
- 確保 maxHistory 和 totalSizeCap 設(shè)置合理。
到此這篇關(guān)于Logback在SpringBoot中的詳細(xì)配置教程的文章就介紹到這了,更多相關(guān)SpringBoot配置Logback內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis分頁插件PageHelper的配置和簡單使用方法(推薦)
在使用Java Spring開發(fā)的時(shí)候,Mybatis算是對數(shù)據(jù)庫操作的利器了。這篇文章主要介紹了Mybatis分頁插件PageHelper的配置和使用方法,需要的朋友可以參考下2017-12-12spring boot使用@Async異步注解的實(shí)現(xiàn)原理+源碼
通常我們都是采用多線程的方式來實(shí)現(xiàn)上述業(yè)務(wù)功能,但spring 提供更優(yōu)雅的方式來實(shí)現(xiàn)上述功能,就是@Async 異步注解,在方法上添加@Async,spring就會借助AOP,異步執(zhí)行方法,接下來通過本文給大家介紹spring boot異步注解的相關(guān)知識,一起看看吧2021-06-06REST架構(gòu)及RESTful應(yīng)用程序簡介
這篇文章主要為大家介紹了REST架構(gòu)及RESTful的應(yīng)用程序簡介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換
本文主要介紹了SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換的相關(guān)知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03Java解析JSON數(shù)據(jù)時(shí)報(bào)錯問題解決方案
這篇文章主要介紹了Java解析JSON數(shù)據(jù)時(shí)報(bào)錯問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10