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