当前位置: 首页 > 知识库问答 >
问题:

当project使用log4j2时,如何使用Log4J1.x处理依赖关系

公良扬
2023-03-14

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

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

在应用程序类路径中同时包含log4j2和log4j1.x的JAR似乎有点荒谬。有没有其他的选择或解决办法?

共有1个答案

丁毅庵
2023-03-14

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

https://issues.apache.org/jira/browse/log4j2-172
https://issues.jboss.org/browse/jblogging-95

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

[edit]结果表明,添加log4j-jcl-2.0jar可以解决这种依赖关系。

 类似资料:
  • 问题内容: 在我的系统中,我在浏览器中加载了许多“类”,在开发过程中,每个类都有单独的文件,并串联在一起进行生产。加载它们时,它们在全局对象(这里)上初始化一个属性,如以下示例所示: 我考虑使用James Burke的建议,而不是使用自己的全局对象,而是考虑使每个类都具有自己的AMD模块: 问题在于,以前在Employee和Company之间没有声明时间依赖关系:您可以按所需的顺序放置声明,但是现

  • 在Karaf中,我可以安装OBR特性,并使用OBR:addURL添加一个repository.xml和OBR:deploy来部署一个bundle以及所有可传递依赖项。我已经在https://stackoverflow.com/A/10989017/242042中记录了它 然而,现在我想要使用PaxExam创建一个JUnit测试,但似乎无法仿真我在PaxExam上使用Karaf所做的事情。 说明如何

  • 嗨,我遇到了一些使用log4j的代码。我想移动到log4j2。从http://logging.apache.org/log4j/2.x/manual/migration.html中,我发现可以使用log4j-1.2-api.jar。我有以下问题: > 在代码中,我有一个自定义的appender(正如链接中给出的,我不应该使用类appender的内部),这意味着我不能使用log4j-1.2-api.

  • 我们有一个使用Spring Boot编写的新项目,其中我们使用Log4j2进行日志记录。 问题是我们需要使用一个遗留库,我们拥有它,但我们不能改变;其他几个系统使用它,我们不能通过改变所有这些系统来扩大我们的范围。 当我们的项目运行时,它使用Log4j2记录的很好,但是当我们调用遗留库时,它会调用Log4j,从而抛出异常。 在我们使用log4j2的新应用程序中,有没有办法处理旧的log4j调用?

  • 众所周知,org/apache/log4j/Level是log4j api,而不是log4j2。 但在我的例子中,hadoop-mapreduce-client-core-2.7。2 jar在其静态代码中使用了Level类。因此,如果我使用log4j2,它将给出一个ClassNotFound异常。 无论如何来处理这件事?

  • 问题内容: 我一直在尝试找到如何使用spaCy获取依赖关系树,但是我找不到如何获取树的任何内容,仅能找到如何导航树的内容。 问题答案: 事实证明,该树可通过文档中的令牌使用。 您是否要查找树的根,可以只浏览文档: 为了浏览树,令牌具有API来通过子代