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> <!-- 指定包或類(lèi)的日志級(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}: 日志輸出者的名稱(chēng)(最長(zhǎng)36字符)
- %msg: 日志消息
- %n: 換行符
Logger 和 Root Logger
- <root>: 根日志配置,所有日志默認(rèn)繼承此配置。
- <logger>: 針對(duì)特定包或類(lèi)配置日志級(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)依賴(lài)。
日志文件未滾動(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分頁(yè)插件PageHelper的配置和簡(jiǎn)單使用方法(推薦)
在使用Java Spring開(kāi)發(fā)的時(shí)候,Mybatis算是對(duì)數(shù)據(jù)庫(kù)操作的利器了。這篇文章主要介紹了Mybatis分頁(yè)插件PageHelper的配置和使用方法,需要的朋友可以參考下2017-12-12詳細(xì)聊聊RabbitMQ竟無(wú)法反序列化List問(wèn)題
這篇文章主要給大家介紹了關(guān)于RabbitMQ竟無(wú)法反序列化List的相關(guān)資料,文中通過(guò)示例代碼將問(wèn)題以及解決的過(guò)程介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09spring boot使用@Async異步注解的實(shí)現(xiàn)原理+源碼
通常我們都是采用多線程的方式來(lái)實(shí)現(xiàn)上述業(yè)務(wù)功能,但spring 提供更優(yōu)雅的方式來(lái)實(shí)現(xiàn)上述功能,就是@Async 異步注解,在方法上添加@Async,spring就會(huì)借助AOP,異步執(zhí)行方法,接下來(lái)通過(guò)本文給大家介紹spring boot異步注解的相關(guān)知識(shí),一起看看吧2021-06-06REST架構(gòu)及RESTful應(yīng)用程序簡(jiǎn)介
這篇文章主要為大家介紹了REST架構(gòu)及RESTful的應(yīng)用程序簡(jiǎn)介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換
本文主要介紹了SpringMVC中Json數(shù)據(jù)格式轉(zhuǎn)換的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03Java解析JSON數(shù)據(jù)時(shí)報(bào)錯(cuò)問(wèn)題解決方案
這篇文章主要介紹了Java解析JSON數(shù)據(jù)時(shí)報(bào)錯(cuò)問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10