我正在一个多模块maven eap项目中工作。以前,它被实现为使用slf4j作为日志记录框架。我改变了它的日志配置,使用log4j2作为底层日志框架(仍然使用slf4j)。当我这样做时,我提到了this文件。但是当我构建项目并将其部署在jboss中时,我收到以下错误。
类路径包含多个SLF4J绑定,在xxx/lib/log4j-slf4j-impl-2.0.2.jar/org/slf4j/impl/StaticLoggerBinder.class
和xxx/lib/slf4j-log4j12-1.7.2.jar/org/slf4j/impl/StaticLoggerBinder.class
中找到绑定
P.S:我从未将slf4j-log4j12-1.7.2.jar
依赖项添加到pom.xml
或任何子模块中。我不知道如何将依赖项复制到lib文件夹中。
任何评论家伙?
答案 0 :(得分:0)
因为它说它意味着你的项目中确实有几个slf4j绑定。 你现在正确处理它是正确的,因为它会变得讨厌并隐藏日志。
你应该运行
mvn dependency:tree
查看哪些模块将依赖项添加到slf4j-log4j12-1.7.2.jar。可能你对它有传递依赖。
你的问题实际上有几个解决方案:
我指的是以下FAQ。它是关于排除公共日志记录,但对于slf4j-log4j应该是相同的。
当我遇到同样的问题时,我发现解决方案2是最容易设置和维护的。但解决方案3也应该可以正常工作。