sl4j与log4j启动关系 log4j和logback不能同时引入的原因

sl4j的LoggerFactory里面getLogger函数会初始化logger,而这个geLogger函数依赖于org.slf4j.impl.StaticLoggerBinder这个类,但是sl4j在编译的时候,并不会将slf4本身的org.slf4j.impl.StaticLoggerBinder这个类打到jar包,

实际上log4j里面有这个包,java的类加载器会加载所有的jar包,所以当你同时引入sl4j-api和log4j两个jar包的时候,实际上调用的是log4j里面的org.slf4j.impl里的getLogger函数,自然就初始化了整个Logger单例。

所以如果你同时引入Logback和log4j那么就会导致错误。

猜你喜欢

转载自blog.csdn.net/innersense/article/details/86641672