slf4j-log4j12-1.7.2.jar不受欢迎的依赖

时间:2014-08-25 16:41:20

标签: java maven log4j slf4j

我正在一个多模块maven eap项目中工作。以前,它被实现为使用slf4j作为日志记录框架。我改变了它的日志配置,使用log4j2作为底层日志框架(仍然使用slf4j)。当我这样做时,我提到了this文件。但是当我构建项目并将其部署在jboss中时,我收到以下错误。

类路径包含多个SLF4J绑定,在xxx/lib/log4j-slf4j-impl-2.0.2.jar/org/slf4j/impl/StaticLoggerBinder.classxxx/lib/slf4j-log4j12-1.7.2.jar/org/slf4j/impl/StaticLoggerBinder.class中找到绑定

P.S:我从未将slf4j-log4j12-1.7.2.jar依赖项添加到pom.xml或任何子模块中。我不知道如何将依赖项复制到lib文件夹中。

任何评论家伙?

1 个答案:

答案 0 :(得分:0)

因为它说它意味着你的项目中确实有几个slf4j绑定。 你现在正确处理它是正确的,因为它会变得讨厌并隐藏日志。

你应该运行

mvn dependency:tree

查看哪些模块将依赖项添加到slf4j-log4j12-1.7.2.jar。可能你对它有传递依赖。

你的问题实际上有几个解决方案:

  1. 您可以明确地排除slf4j-log4j
  2. 您可以使用"提供的"范围
  3. 你可以使用空文物
  4. 我指的是以下FAQ。它是关于排除公共日志记录,但对于slf4j-log4j应该是相同的。

    当我遇到同样的问题时,我发现解决方案2是最容易设置和维护的。但解决方案3也应该可以正常工作。