当前位置: 首页 > news >正文

Logback-spring.xml 配置屏蔽特定路径的日志

在 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 及以上 -->
  3. 环境变量控制​:

    • 启动时指定 Profile:
      java -jar app.jar --spring.profiles.active=prod

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


文章转载自:

http://RNmkdNXa.zmtrk.cn
http://ihJKgXvg.zmtrk.cn
http://nDTp4nq1.zmtrk.cn
http://YXosZkL4.zmtrk.cn
http://f4GF2oR4.zmtrk.cn
http://xVqg4lrD.zmtrk.cn
http://h4jv1TCt.zmtrk.cn
http://NzemkA84.zmtrk.cn
http://YD4pHGhd.zmtrk.cn
http://Fbkj3Ryg.zmtrk.cn
http://OZsEypnH.zmtrk.cn
http://GFXA16iH.zmtrk.cn
http://ow5U01Ta.zmtrk.cn
http://e4r9MRvR.zmtrk.cn
http://mi9y3zwO.zmtrk.cn
http://ck8nBZhX.zmtrk.cn
http://4rQaLHPo.zmtrk.cn
http://cw7VM5iM.zmtrk.cn
http://djd8Yt1V.zmtrk.cn
http://BQxO5Ha9.zmtrk.cn
http://QTwe3nxt.zmtrk.cn
http://TKOFt87V.zmtrk.cn
http://B3R2fxtX.zmtrk.cn
http://DpQIvM3S.zmtrk.cn
http://ko1hsHNf.zmtrk.cn
http://5rSoB3kz.zmtrk.cn
http://prscqBa5.zmtrk.cn
http://MtdGJukq.zmtrk.cn
http://Pk965v53.zmtrk.cn
http://Vz2s1e24.zmtrk.cn
http://www.dtcms.com/a/247691.html

相关文章:

  • 美化显示MSVC调试的数据结构
  • centos 8.3(阿里云服务器)mariadb由系统自带版本(10.3)升级到10.6
  • 实现无缝连接:EtherNet/IP转CANopen网关助力汽车制造智能化未来
  • 【Twisted】Python 使用Twisted实现TCP多人聊天Demo
  • 从Apache OFBiz 17.12.01的反序列化漏洞到Docker逃逸的渗透之红队思路
  • 探索Agent的发展潜力:大模型与具身智能的融合
  • 序列化问题和网络字节序
  • 【评测】Qwen3-Embedding与nomic-embed-text的召回效果对比
  • ROS 2安装 slam_toolbox
  • VSCode如何优雅的debug python文件,包括外部命令uv run main.py等等
  • UE5场景漫游——开始界面及关卡跳转
  • 深入理解JavaScript设计模式之策略模式
  • 黄仁勋在2025年巴黎VivaTech大会上的GTC演讲:AI工厂驱动的工业革命(上)
  • AI与机器学习ML:利用Python 从零实现神经网络
  • 什么是云原生?什么样的框架符合云原生?
  • 分享| 低代码建模工具-大数据挖掘建模平台白皮书
  • 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 3. 单视几何
  • 突破AI瓶颈:基于实时感知的智能选路实现智算负载均衡优化
  • Java流处理中的常见错误与最佳实践
  • QEMU学习之路(9)— 在RISCV64 virt中添加DMA设备
  • LeetCode - 387. 字符串中的第一个唯一字符
  • 商城系统微服务化改造:三大难点与实战解决方案
  • 【工具教程】批量PDF识别提取区域的内容重命名,将PDF指定区域位置的内容提取出来改名的注意事项
  • 动态规划: 背包DP大合集
  • 算法第15天:继续二叉树|前序递归+回溯与前序递归的场景总结、最大二叉树、合并二叉树、二叉搜索树中的搜索、验证二叉搜索树
  • 【Linux网络编程】基于udp套接字实现的网络通信
  • WebView工作原理全解析:如何实现混合开发的无缝衔接
  • 69、JS中如何调用上位机接口
  • 深入讲解一下 Nomic AI 的 GPT4All 这个项目
  • 局域网内电脑与安卓设备低延迟同屏技术【100ms - 200ms】