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

