环境中以前使用weblogic11g+jdk1.7并使用slf4j+log4j2.8进行日志记录,一直正常记录日志,log4j2.x版本出现漏洞后进行升级,使用log4j2.15对log4j2.8进行替换,中间件日志可以正常记录日志,但不记录入日志文件中,进行原因排查
中间件日志中可看到在slf4j绑定前,找到两个StaticLoggerBinder实现,但真正绑定时,仍然提示Failed to load class “org.slf4j.impl.StaticLoggerBinder”.绑定失败,未报错,原因未知
查看slf4j源码
应该是报错了,但是slf4j没有将错误日志抛出,默认使用no-operation (NOP) logger implementation进行日志打印
修改源码进行日志打印,将错误抛出进行错误跟进
确实报了NoClassDefFoundError,具体原因为:
发现为log4j2.15加载时与jdk版本不一致导致。。。
解决方案:
1.升级jdk版本到1.8
2.使用log4j 1.x+slf4j+slf4j-log4j12进行日志打印
jdk1.7使用slf4j+log4j2不记录日志文件
最新推荐文章于 2024-01-19 16:29:40 发布
在升级log4j2到2.15后,日志无法写入文件。排查发现slf4j绑定失败,原因是log4j2与JDK1.7版本不兼容。解决方案包括升级JDK到1.8或使用log4j 1.x+slf4j的组合。
摘要由CSDN通过智能技术生成