我的项目正在使用 log4j2,一切看起来都很好,直到运行使用第三方库的应用程序,该应用程序使用 log4j 1.x。当我们的应用程序启动时,我们得到一个恼人的堆栈跟踪,涉及 org.apache.log4j.ConsoleAppender 上的 ClassNotFoundException。我注意到我们的一个依赖项在其 jar 中引用了 org.apache.log4j.ConsoleAppender 的 log4j.properties,所以我猜这就是堆栈跟踪的原因。导致此错误的其他几个依赖项包括使用 JBoss 日志记录类的大部分内容,例如嵌入式 glassfish 和 eclipse 持久性包。
我尝试将 log4j-1.2.bridge api jar 添加到类路径中,但没有效果。
在我们的应用程序类路径中同时包含 log4j2 和 log4j1.x 的 jar 似乎有点荒谬。有没有其他选择或修复?
最佳答案
这些链接为我提供了答案:
https://issues.apache.org/jira/browse/LOG4J2-172
https://issues.jboss.org/browse/JBLOGGING-95
看起来我们正在使用不支持 log4j2 的过时版本的 JBoss 日志记录。但是,我仍然不确定如何处理包含 log4j.properties 的一个依赖项。
[编辑] 事实证明,添加 log4j-jcl-2.0 jar 适用于该依赖项。
关于log4j - 项目使用log4j2时如何使用log4j 1.x处理依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389501/