关于log4j的那些坑

背景:工程中同时存在log4j.xml&log4j2.xml

maven依赖如下:

此时工程实际使用的日志文件为log4j.xml

1、当同时设置log4j和log4j2的桥接依赖时

maven依赖如下:

此时启动会有警告日志:

点击告警日志链接:https://www.slf4j.org/codes.html#multiple_bindings

由文章得知具体加载哪个log4j/log4j2文件是由jvm随机决定的。

工程桥接依赖顺序如下:

经验证 jvm会选择上方桥接依赖与slf4j绑定,具体可参见启动日志(或断点源码):

log4j与log4j2都包含Log4jLoggerFactory对象,因此我们可通过包路径确认加载何bean。

(为何这么加载,暂且留个疑问,等下回再去剖析,感觉略深)

至此,我们便弄明白当工程必须存在两个log4j配置文件时,文件的加载情况如何。

另发现,工程日志路径打印异常问题,表现为打印日志路径及文件名称异常,后详细排查了target目录,发现是由于配置文件中占位符未替换导致的,由于工程基于profile,因此我们通过修改pom文件中对应profile的build情况便可解决。

新增上图红框中文件配置即可。

经验证,问题至此已全部解决。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值