【Log】为类中的所有日志打印添加前缀

41 篇文章 6 订阅

前言

有没有一种办法,在一个类中(业务逻辑)。logger.info 的时候自动加上日志前缀,这样子查日志更方便。stackoverflow 上面有对该问题的讨论,实测可用,这里记录一下。

验证

  • 代码
@SpringBootTest
public class LogPrefixTest {

	Logger logger = LoggerFactory.getLogger(LogPrefixTest.class + " 前缀");
	
	@Test
	public void testLogger() {
		logger.error("报错了");
	}
}
  • 效果
    在这里插入图片描述

探索

以下代码的可用性探索
Logger logger = LoggerFactory.getLogger(LogPrefixTest.class + " 前缀");
在这里插入图片描述
以全路径class名和日志前缀的格式进入logger工厂

  • 加了前缀的最终拿到的logger
    在这里插入图片描述
    可以看到logger的parent依旧是以包名来获取的,并不会损失log4j.xml带来的配置体验。

  • 对比不加前缀的logger
    在这里插入图片描述

后记

值得一提的是,使用log4j和logback 都能完成加日志前缀的需求。得益于slf4j的抽象。(很大程度上也取决于log4j、logback 是同一个作者)。

另外,这样一个小需求在实现过程中还是走了弯路的,先是主动为类中的 logger.info 都套一层方法,然后上层方法进行复用。这样做的缺点也被 stackoverflow 上的老哥指出来了。
在这里插入图片描述

  • 相关链接

【Logback】开发环境怎么组织xml文件构建日志策略
【Log4j2】开发环境配置日志策略打印完整MyBatis语句到文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值