SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

 更新时间:2025年06月13日 10:42:19   作者:悟能不能悟  
在 Spring Boot 项目中,使用 logback-spring.xml 配置屏蔽特定路径的日志有两种常用方式,文中的示例代码讲解详细,有需要的小伙伴可以了解下

方案一:基础配置(直接关闭目标路径日志)

<?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 默认控制台输出 -->
    <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>

方案二:结合 Spring Profile 按环境屏蔽

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <springProfile name="prod">
        <!-- 生产环境屏蔽指定包日志 -->
        <logger name="com.example.debug" level="OFF" />
    </springProfile>
 
    <springProfile name="dev,test">
        <!-- 开发/测试环境保留全部日志 -->
        <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>

关键配置说明

​1.精准路径屏蔽​

<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> 标签支持基于环境变量动态控制:

<!-- 多环境控制示例 -->
<springProfile name="!prod">  <!-- 非生产环境生效 -->
     <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("这条日志应该被隐藏"); // 不会输出
        log.error("这条日志也会被隐藏"); // OFF 级别会屏蔽所有级别
    }
}

常见问题解决

1.​屏蔽不生效​:

检查路径是否正确(区分大小写)

确保没有其他配置覆盖(如根 logger 设置)

确认配置位置:src/main/resources/logback-spring.xml

​2.部分屏蔽​:

若需保留错误日志:

<logger name="com.example.large" level="ERROR" /> <!-- 只显示 ERROR 及以上 -->

​环境变量控制​:

启动时指定 Profile:

java -jar app.jar --spring.profiles.active=prod

提示:Spring Boot 会自动加载 logback-spring.xml 并支持热更新(默认扫描间隔 30 秒),无需重启应用即可生效。

到此这篇关于SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志的文章就介绍到这了,更多相关SpringBoot屏蔽特定路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot 2.x RabbitTemplate默认消息持久化的原因解析

    Springboot 2.x RabbitTemplate默认消息持久化的原因解析

    这篇文章主要介绍了Springboot 2.x RabbitTemplate默认消息持久化的原因解析,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • IntelliJ IDEA 无法正常使用SVN的问题和完美解决办法

    IntelliJ IDEA 无法正常使用SVN的问题和完美解决办法

    这篇文章主要介绍了IntelliJ IDEA 无法正常使用SVN的问题和解决办法,本文给大家分享完美解决方案,通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • MyBatis实现动态SQL更新的代码示例

    MyBatis实现动态SQL更新的代码示例

    本文博小编将带领大家学习如何利用 MyBatis 拦截器机制来优雅的实现这个需求,文中通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • Mybatis集成Spring的实例代码_动力节点Java 学院整理

    Mybatis集成Spring的实例代码_动力节点Java 学院整理

    这篇文章主要介绍了Mybatis集成Spring的实例代码,需要的朋友可以参考下
    2017-09-09
  • Java中枚举的使用方法详解

    Java中枚举的使用方法详解

    这篇文章主要介绍了Java中枚举的使用方法详解,比如我们想声明一组季节的集合,那这里面最多有四种,即春夏秋冬,不允许有其他的季节,那为了实现这种限制,体现出季节是固定的四个对象,我们可以使用枚举,需要的朋友可以参考下
    2023-07-07
  • Java并发编程必备之Synchronized关键字深入解析

    Java并发编程必备之Synchronized关键字深入解析

    本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种使用方式:修饰代码块、修饰普通方法和修饰静态方法,感兴趣的朋友一起看看吧
    2025-04-04
  • IDEA 如何导入别人的javaweb项目进行部署

    IDEA 如何导入别人的javaweb项目进行部署

    这篇文章主要介绍了IDEA 如何导入别人的javaweb项目进行部署,本文给大家分享我的详细部署过程及遇到问题解决方法,需要的朋友可以参考下
    2023-03-03
  • Java实现走迷宫回溯算法

    Java实现走迷宫回溯算法

    这篇文章主要为大家详细介绍了Java实现走迷宫回溯算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解决springcloud集成nacos遇到的问题

    解决springcloud集成nacos遇到的问题

    这篇文章介绍了如何解决springcloud集成nacos遇到的问题,文章中有详细的代码示例,需要的朋友可以参考一下
    2023-04-04
  • Spring Boot 使用断言让你的代码在上线前就通过“体检”(最新整理)

    Spring Boot 使用断言让你的代码在上线前就通过“体检”(最新整理)

    断言是一种编程技巧,用于在代码中插入检查点,验证程序的状态是否符合预期,如果断言失败,程序会抛出一个错误,帮助你快速发现和修复bug,本文给大家介绍Spring Boot 断言:让你的代码在上线前就通过“体检”,感兴趣的朋友一起看看吧
    2025-03-03

最新评论