日志 --- SLF4J日志框架问答

现在主流的日志方案是使用SLF4J作为API在代码中使用,具体的日志实现由不同的JAR完成,本文帮助了解一下SLF4J常见问题以及如何完美兼容各种不同日志框架

SLF4J如何自动使用lib中的日志实现JAR ?比如Logback, Log4j

答:直接使用org.slf4j.impl.StaticLoggerBinder,该类由各日志框架实现,比如Logback.

import org.slf4j.impl.StaticLoggerBinder;
private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";
Log4j, Commons-Logging, JUL(java.util.logging)都没有实现org.slf4j.impl.StaticLoggerBinder, 应该如何被SLF4J使用?

答: 使用绑定包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-log4j12.jar吗?

答:不可以,log4j-over-slf4j.jar中使用SLF4J实现了Log4j,但是slf4j-log4j12.jar又把SLF4J的实现交给了Log4j, 因此就产生了一个死循环。

日志系列

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券