slf4j-log4j12-1.7.5jar与logback-classic-1.0.12.jar 包冲突

参考
http://singleant.iteye.com/blog/934593

slf4j-log4j12-1.7.5jar与logback-classic-1.0.12.jar 包冲突

现象
所有日志都打到控制台,log4j失效

原理是SLF4J 会在编译时会绑定import org.slf4j.impl.StaticLoggerBinder; 该类里面实现对具体日志方案的绑定接入。任何一种基于slf4j 的实现都要有一个这个类。如:
org.slf4j.slf4j-log4j12-1.5.6: 提供对 log4j 的一种适配实现。
Org.slf4j.slf4j-simple-1.5.6: 是一种 simple 实现,会将 log 直接打到控制台。
……
那么这个地方就要注意了:如果有任意两个实现slf4j 的包同时出现,那就有可能酿就悲剧,你可能会发现日志不见了、或都打到控制台了。原因是这两个jar 包里都有各自的org.slf4j.impl.StaticLoggerBinder ,编译时候绑定的是哪个是不确定的。这个地方要特别注意!!出现过几次因为这个导致日志错乱的问题。

猜你喜欢

转载自wangqiaowqo.iteye.com/blog/2012133