Aries No Log

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

<span title='2023-02-27 18:11:45 +0800 +0800'>February 27, 2023</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;YuanPeng