JBoss多个SLF4J绑定错误,我如何导致多个日志实现共存

时间:2015-08-12 08:30:05

标签: java jboss log4j slf4j

我在Java 8运行时运行JBoss 4.2GA。

我的耳朵有多个战争,这些战争都有冲突的SLF4J绑定,

/slf4j-log4j12-1.7.5.jar and log4j-slf4j-impl-2.0.2.jar.

我可以让他们共存而不是“互相抱怨”吗?

1 个答案:

答案 0 :(得分:0)

嗯,有多个绑定,所以抱怨是完全有效的。这只是一个信息,但SLF4J将决定使用哪种绑定并坚持使用它。如果您不想要该消息,则必须在.war文件中排除您不想要的依赖项。最后,无论如何只会使用一个绑定,自己做出这个选择是个好主意,而不是让一些代码随机选择一个。

documentation说:

  

SLF4J发出的警告只是一个警告。即便   存在多个绑定,SLF4J将选择一个日志记录   框架/实现并与它绑定。 SLF4J选择的方式   绑定由JVM确定,并且应该用于所有实际目的   被认为是随机的。从版本1.6.6开始,SLF4J将命名为   它实际上绑定的框架/实现类。

和...

  

不应声明嵌入式组件(如库或框架)   依赖于任何SLF4J绑定但仅依赖于slf4j-api。当一个   库声明了对SLF4J绑定的编译时依赖性   强加给最终用户的绑定,从而否定了SLF4J的目的。