Java日志框架——SLF4J与Logback
发布于2025-01-21 21:58:16,更新于2025-01-21 23:31:50,标签:java log 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog一、日志
1.1 历史
在了解日志框架时总会列出一系列框架
- Log4j
- Reload4j
- JUL(Java Util Logging)
- JCL(Jakarta Commons Logging)
- SLF4J(Simple Logging Facade For Java)
- Logback
这么多框架让人感到混乱,下面逐步理清这些框架及之间的关系。
首先来了解日志框架的发展历程
1996 年:Log4j
- Log4j 面世,成为流行的 Java 日志框架,并贡献给 Apache 基金会。
- 2015 年停止维护,其作者发起了
reload4j
,修复 Log4j 1.2.17 的漏洞,推荐搭配slf4j-reload4j
使用。
2002 年:JUL(Java Util Logging)
- Apache 曾建议 SUN 公司将 Log4j 并入 JDK,但遭拒绝。
- 同年,Java 1.4 发布,推出仿 Log4j 的日志库 JUL。
2002 年:JCL(Jakarta Commons Logging)
- 后更名为 Apache Commons Logging。
- 提供统一日志接口,解决多框架依赖问题,支持 Log4j 和 JUL 等实现。
2006 年:SLF4J(Simple Logging Facade for Java)
- 由 Log4j 作者发起,提供简单稳定的日志门面,统一日志 API。
- 支持集成 JUL、Log4j、Reload4j 和 Logback 等多种实现。
2006 年:Logback
- SLF4J 作者推出的新一代日志实现框架,成为当前最常用的日志实现框架。
2014 年:Log4j2
- Log4j 官方升级版,功能更强,性能更优。
1.2 日志规范及实现分类
日志规范
- JCL
- SLF4J
所谓规范,即仅定义了顶层的接口API。
这里面有个趣事,我正常开发的程序,在适配信创环境下的东方通时,日志报错了。
经过层层排查,发现东方通将slf4j的包名
org.slf4j
修改成了com.tongweb.slf4j
,然后对方又提供了适配1
的sdk,感觉有点好笑。细节可以参考取于开源,反哺开源 - 言成言成啊
日志实现框架
- Log4j/Reload4j/Log4j2
- JUL
- Logback
参考致谢
打赏