log4j线上不打印日志
问题描述
使用log4j的项目(包名com.abc)在服务器上未打印日志,本地控制台打印正常,文件中未输出。
日志文件能够正常生成,并且也有日志打印,但是业务日志没有打印。
只打印了com.xxx包下的日志。
问题分析
出现日志无法打印的问题大概率就在logback.xml的配置上,具体logback的配置参数的具体解释网上有很多,具体可以看一下
https://juejin.cn/post/7200549600590282789
在logback.xml中可以发现一个配置项:
|
|
logger标签可以指定特定包的输出,additivity字段含义如下
如果logger里面配置了additivity=“false”,就会覆盖root的,只打印一遍;但是additivity=“true”,就会向上层再次传递,不会覆盖,而是打印两遍!
通过查看logback.xml文件我们可以发现,整个文件中只使用了一个logger打印com.xxx包下的日志,而我们的项目的package为com.abc。
问题解决
至此问题已经排查完毕,那问题的解决也很简单,新增加一个com.abc的logger即可
|
|