现在主流的日志方案是使用SLF4J作为API在代码中使用,具体的日志实现由不同的JAR完成,本文帮助了解一下SLF4J常见问题以及如何完美兼容各种不同日志框架
答:直接使用org.slf4j.impl.StaticLoggerBinder
,该类由各日志框架实现,比如Logback
.
import org.slf4j.impl.StaticLoggerBinder;
private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";
答: 使用绑定包slf4j-log4j12
, slf4j-jcl
, slf4j-jdk14
,这些包中都实现了StaticLoggerBinder
SLF4J
?答:使用桥接包log4j-over-slf4j
, jcl-over-slf4j
, jul-over-slf4j
,这些桥接包就是底层使用SLF4J
分别实现了Log4j
, Commons-Logging
,JUL
的核心功能
答:不可以,log4j-over-slf4j.jar
中使用SLF4J
实现了Log4j
,但是slf4j-log4j12.jar
又把SLF4J
的实现交给了Log4j
, 因此就产生了一个死循环。