【问题标题】:How to deal with dependencies using log4j 1.x, when project uses log4j2当项目使用 log4j2 时如何使用 log4j 1.x 处理依赖关系
【发布时间】:2014-02-18 19:14:23
【问题描述】:

我的项目正在使用 log4j2,在运行使用第三方库的应用程序之前一切正常,该第三方库使用 log4j 1.x。当我们的应用程序启动时,我们会在 org.apache.log4j.ConsoleAppender 上得到一个涉及 ClassNotFoundException 的恼人的堆栈跟踪。我注意到我们的一个依赖项在其 jar 中有一个 log4j.properties 引用 org.apache.log4j.ConsoleAppender,所以我猜这就是堆栈跟踪的原因。导致此错误的其他几个依赖项包括大多数使用 JBoss 日志记录类的东西,例如嵌入式 glassfish 和 eclipse 持久性包。

我尝试将 log4j-1.2.bridge api jar 添加到类路径中,但没有效果。

在我们的应用程序类路径中同时包含 log4j2 和 log4j1.x 的 jar 似乎有点荒谬。有没有其他替代方案或解决方法?

【问题讨论】:

    标签: log4j log4j2


    【解决方案1】:

    这些链接为我提供了答案:

    https://issues.apache.org/jira/browse/LOG4J2-172
    https://issues.jboss.org/browse/JBLOGGING-95

    看起来我们正在使用不支持 log4j2 的过时版本的 JBoss 日志记录。但是,我仍然不确定如何处理包含 log4j.properties 的一个依赖项。

    [edit] 事实证明,添加 log4j-jcl-2.0 jar 对那个依赖项有效。

    【讨论】:

    • 我遇到了同样的问题。我的应用程序中的 simplejavamail 使用 log4j 1.2,因此我正在寻找一种不涉及使用两个不同版本的 log4j 的解决方案。你设法解决了你的问题吗?
    • 您需要将log4j2“1.2.x api bridge jar”添加到您的项目中。
    猜你喜欢
    • 2018-06-25
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2014-10-22
    • 2017-09-20
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多