Java JBOSS中的多个SLF4J绑定导致错误
我们的应用程序在单个JBOSS-AS上部署了多个EAR 每个EAR都使用SLF4J进行日志记录,它可以在WAR的库中使用。我们也有一个案例,我们将分别部署耳朵 以下是针对单个EAR的部署错误。我们每个耳朵都会出现类似的错误Java JBOSS中的多个SLF4J绑定导致错误,java,binding,jboss,slf4j,Java,Binding,Jboss,Slf4j,我们的应用程序在单个JBOSS-AS上部署了多个EAR 每个EAR都使用SLF4J进行日志记录,它可以在WAR的库中使用。我们也有一个案例,我们将分别部署耳朵 以下是针对单个EAR的部署错误。我们每个耳朵都会出现类似的错误 2011-07-07 23:27:52,794 ERROR [STDERR] (main) SLF4J: Class path contains multiple SLF4J bindings. 2011-07-07 23:27:52,794 ERROR [STDERR] (
2011-07-07 23:27:52,794 ERROR [STDERR] (main) SLF4J: Class path contains multiple SLF4J bindings.
2011-07-07 23:27:52,794 ERROR [STDERR] (main) SLF4J: Found binding in [vfszip:/jboss-as/common/lib/lib/slf4j-jboss-logging.jar/org/slf4j/impl/StaticLoggerBinder.class]
2011-07-07 23:27:52,794 ERROR [STDERR] (main) SLF4J: Found binding in [vfszip:/Product_Ear.ear/Product_War.war/WEB-INF/lib/slf4j-jcl-1.5.8.jar/org/slf4j/impl/StaticLoggerBinder.class]
2011-07-07 23:27:52,794 ERROR [STDERR] (main) SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
此错误是因为根据解释URL,我们有多个SLF4j绑定
问题:
旁注: 即使我们的大部分耳朵都有错误,也没有其他问题。
每个缩进功能都工作正常。slf4j的这种行为是经过设计的。如果您不喜欢,您必须在slf4j站点上提交错误报告 问题是JBoss在其默认类加载器中提供了slf4j绑定,而您自己也带来了。我对JBoss还不太熟悉,所以不能说common/lib中的slf4j jar是否默认可用,或者您是否将其放在那里,但在那个位置,您可能无法禁用它。您可能希望在jboss站点上提出错误报告 这个问题源于我不相信servlet规范中明确规定了web容器类加载器应该提供什么和不应该提供什么。因此,将存在部署问题 唯一的解决办法是删除您自己的slf4j绑定并登录到jboss记录器
但是请注意,如果您让web容器进行日志记录,这将是最跨平台的,因为规范不保证您可以访问文件系统。谢谢您的建议。我会核实的。我遇到了这个社区。但我不清楚是否排除LoggerBinder或整个二进制文件会对我有所帮助。请让我知道你的想法。在你的部署中遗漏任何与slf4j相关的内容。如果没有,你可能会遇到类加载器问题。这篇文章显然解释了如何取消slf4j绑定。我建议你试试。