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

JAVAlang.NoSuchMethodError:org。阿帕奇。log4j。记录器

南宫正阳
2023-03-14

我们使用ivy来管理一个多项目java应用程序,最近当我们进行构建时,这个错误开始出现。这是什么原因?

共有3个答案

贡和裕
2023-03-14

我知道这是一个非常古老的问题,但我想分享一下对我来说很好的结果。如果对于相互依赖的两个项目(例如spring data jpa和spring MVC),您有不同的slf4j-log4j*工件,就会发生这种情况。保持一致,或者最好有一个家长pom。在我的例子中,我的spring data jpa项目上有slf4j-log4j12,spring MVC项目上有slf4j-log4j13。

冯卜鹰
2023-03-14

看起来log4j桥没有实现log4j的完整接口。如果您仍在使用直接log4j调用,那么您将需要slf4j网桥jar和log4j jar

在您的案例中,看起来您排除了网桥jar,因此所有slf4j调用都直接转到log4j而不是网桥。

如果您的代码通过xml文件调用log4j,这将起作用。然而,如果您的代码以编程方式调用log4j初始化,那么这个桥将无法工作

夹谷苗宣
2023-03-14

这是通过在ivy.xml的依赖项部分末尾添加以下行来修复的:

<dependencies>
         
  <exclude module="log4j-over-slf4j" /> 
</dependencies>

为什么这是一个问题?

  • 看来sjf4j的log4j桥的实现不完整
  • 这个url对其进行了更详细的解释
 类似资料:
  • 在我部署在WebSphere 8.5上的java应用程序中,我遇到了这个错误,尽管我的maven依赖项低于log4j。 我确实运行了一个,我可以看到它正以 的形式被拉进来,这是我期望在树结果中看到的,这样我就可以确认它在类路径中。有什么想法吗?

  • 我正试图让我的Grails应用程序使用logback插件登录。根据文档说明,以下是我迄今为止所做的工作: 然后我运行了一个。当我运行一个时,我得到一个绝对巨大的堆栈跟踪,如下所示: 此外,在我的GGTS IDE中,添加到中的两个导入语句出现了编译器错误。听起来我的Grails应用程序中仍然有Log4j引用,并且运行将Log4j JAR从我的类路径中删除。这可能解释了堆栈跟踪。但这并不能解释为什么G

  • 这是我们单个模块的pom.xml 我们有很多模块,当我们从intellji运行时,当我们尝试将单个模块转换为。jar并通过-mvn clean安装运行,我们得到了这个错误。 这是错误代码

  • Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?

  • 我有一个Web应用程序Java类运行到一个名为Sincronizador的Wildfly中。我确实创建了一个特定的org.apache.log4j。记录器在Sincronizador.java但是也将信息放在Wildfly中。我想只在这个记录器中记录信息

  • 我有一个简单的项目和一些EJB,我试图部署到一个服务器。这就是我如何尝试初始化我的: 没什么特别的。 这就是我的相关部分如下所示: 没有这一部分,我可以建立我的项目。但在这一部分,我得到了一个例外: 我该怎么办?非常感谢。