SpringBoot項目配置logback-spring.xml屏蔽特定路徑的日志
方案一:基礎(chǔ)配置(直接關(guān)閉目標(biāo)路徑日志)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 屏蔽 com.example.sensitive 包及其子包的所有日志 -->
<logger name="com.example.sensitive" level="OFF" />
<!-- 若需精確屏蔽特定類 -->
<logger name="com.example.service.SensitiveService" level="OFF" />
<!-- Spring Boot 默認(rèn)控制臺輸出 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>方案二:結(jié)合 Spring Profile 按環(huán)境屏蔽
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProfile name="prod">
<!-- 生產(chǎn)環(huán)境屏蔽指定包日志 -->
<logger name="com.example.debug" level="OFF" />
</springProfile>
<springProfile name="dev,test">
<!-- 開發(fā)/測試環(huán)境保留全部日志 -->
<logger name="com.example.debug" level="DEBUG" />
</springProfile>
<!-- 公共配置 -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>關(guān)鍵配置說明
?1.精準(zhǔn)路徑屏蔽?
<logger name="完整的包或類路徑" level="OFF" />
name 屬性:支持包路徑(如 com.example.util)或全限定類名(如 com.example.util.CryptoUtils)
包路徑會屏蔽該包及其所有子包下的日志?
2.避免日志傳遞?(可選)
添加 additivity="false" 防止日志事件向上傳遞:
<logger name="com.example.noisy" level="OFF" additivity="false" />
3.?使用 Spring Profile?
<springProfile> 標(biāo)簽支持基于環(huán)境變量動態(tài)控制:
<!-- 多環(huán)境控制示例 -->
<springProfile name="!prod"> <!-- 非生產(chǎn)環(huán)境生效 -->
<logger name="com.example.temp" level="DEBUG" />
</springProfile>
驗證生效
1.?檢查路徑匹配?:
包路徑:com.example.sensitive 會屏蔽:
- com.example.sensitive.Service
- com.example.sensitive.util.Helper
- 等所有子包中的類
2.?測試日志輸出?:
// 被屏蔽的類
package com.example.sensitive;
public class SecureService {
private static final Logger log = LoggerFactory.getLogger(SecureService.class);
public void process() {
log.debug("這條日志應(yīng)該被隱藏"); // 不會輸出
log.error("這條日志也會被隱藏"); // OFF 級別會屏蔽所有級別
}
}
常見問題解決
1.?屏蔽不生效?:
檢查路徑是否正確(區(qū)分大小寫)
確保沒有其他配置覆蓋(如根 logger 設(shè)置)
確認(rèn)配置位置:src/main/resources/logback-spring.xml
?2.部分屏蔽?:
若需保留錯誤日志:
<logger name="com.example.large" level="ERROR" /> <!-- 只顯示 ERROR 及以上 -->
?環(huán)境變量控制?:
啟動時指定 Profile:
java -jar app.jar --spring.profiles.active=prod
提示:Spring Boot 會自動加載 logback-spring.xml 并支持熱更新(默認(rèn)掃描間隔 30 秒),無需重啟應(yīng)用即可生效。
到此這篇關(guān)于SpringBoot項目配置logback-spring.xml屏蔽特定路徑的日志的文章就介紹到這了,更多相關(guān)SpringBoot屏蔽特定路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析
這篇文章主要介紹了Springboot?2.x?RabbitTemplate默認(rèn)消息持久化的原因解析,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
IntelliJ IDEA 無法正常使用SVN的問題和完美解決辦法
這篇文章主要介紹了IntelliJ IDEA 無法正常使用SVN的問題和解決辦法,本文給大家分享完美解決方案,通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
MyBatis實現(xiàn)動態(tài)SQL更新的代碼示例
本文博小編將帶領(lǐng)大家學(xué)習(xí)如何利用 MyBatis 攔截器機制來優(yōu)雅的實現(xiàn)這個需求,文中通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2023-07-07
Mybatis集成Spring的實例代碼_動力節(jié)點Java 學(xué)院整理
這篇文章主要介紹了Mybatis集成Spring的實例代碼,需要的朋友可以參考下2017-09-09
Java并發(fā)編程必備之Synchronized關(guān)鍵字深入解析
本文我們深入探索了Java中的Synchronized關(guān)鍵字,包括其互斥性和可重入性的特性,文章詳細介紹了Synchronized的三種使用方式:修飾代碼塊、修飾普通方法和修飾靜態(tài)方法,感興趣的朋友一起看看吧2025-04-04
IDEA 如何導(dǎo)入別人的javaweb項目進行部署
這篇文章主要介紹了IDEA 如何導(dǎo)入別人的javaweb項目進行部署,本文給大家分享我的詳細部署過程及遇到問題解決方法,需要的朋友可以參考下2023-03-03
Spring?Boot?使用斷言讓你的代碼在上線前就通過“體檢”(最新整理)
斷言是一種編程技巧,用于在代碼中插入檢查點,驗證程序的狀態(tài)是否符合預(yù)期,如果斷言失敗,程序會拋出一個錯誤,幫助你快速發(fā)現(xiàn)和修復(fù)bug,本文給大家介紹Spring?Boot?斷言:讓你的代碼在上線前就通過“體檢”,感興趣的朋友一起看看吧2025-03-03

