Log4J部分日志丢失问题求助(SLF4J+Spring+Tomcat环境)
日志偶发异常排查求助:Log4J配置有时无法正常加载
背景
我们运行一个基于SLF4J和Spring 5.3.18的遗留Web应用,采用Log4J 2作为日志框架。通过Tomcat启动参数-Dlog4j.configurationFile=our-log4j2.xml指定外部配置文件,该配置已稳定运行多年。
问题现象
- 部署新版本时,偶尔出现日志部分丢失:仅能收到ROOT Logger输出的日志,其他类(如MyBatis的
org.apache.ibatis.logging.LogFactory、Spring相关类等)的日志无输出 - 异常时,catalina.out中会打印警告:
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory)(警告中的类不固定) - 日志正常时无此警告;最初重新构建/部署可解决问题,但近期单次重构无法修复,问题出现频率升高
环境与依赖详情
部署环境
- Jenkins执行Maven构建,部署至Tomcat 9
- 服务器为AWS EC2 Linux实例
依赖配置(3/2更新)
POM中始终包含以下依赖:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> </dependency>
日志正常时,WEB-INF/lib目录包含:
log4j-api-2.17.2.jar log4j-core-2.17.2.jar log4j-1.2-api-2.17.2.jar slf4j-api-1.7.35.jar slf4j-reload4j-1.7.35.jar
- 移除
log4j-1.2-api-2.17.2.jar后日志完全无法工作,但即使该依赖存在,仍会偶发日志异常
已确认的情况
- 配置文件本身无错误(多年稳定运行,且相同配置有时能正常生效)
- 并非典型的配置缺失/错误问题,相同构建包有时能正常运行
求助需求
请帮忙分析该偶发日志异常的原因,并提供排查或修复的思路。
内容的提问来源于stack exchange,提问作者kansasSamurai
相关产品推荐
相关产品推荐

