言成言成啊 | Kit Chen's Blog

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

这么多框架让人感到混乱,下面逐步理清这些框架及之间的关系。

首先来了解日志框架的发展历程

  1. 1996 年:Log4j

    • Log4j 面世,成为流行的 Java 日志框架,并贡献给 Apache 基金会。
    • 2015 年停止维护,其作者发起了 reload4j,修复 Log4j 1.2.17 的漏洞,推荐搭配 slf4j-reload4j 使用。
  2. 2002 年:JUL(Java Util Logging)

    • Apache 曾建议 SUN 公司将 Log4j 并入 JDK,但遭拒绝。
    • 同年,Java 1.4 发布,推出仿 Log4j 的日志库 JUL。
  3. 2002 年:JCL(Jakarta Commons Logging)

    • 后更名为 Apache Commons Logging。
    • 提供统一日志接口,解决多框架依赖问题,支持 Log4j 和 JUL 等实现。
  4. 2006 年:SLF4J(Simple Logging Facade for Java)

    • 由 Log4j 作者发起,提供简单稳定的日志门面,统一日志 API。
    • 支持集成 JUL、Log4j、Reload4j 和 Logback 等多种实现。
  5. 2006 年:Logback

    • SLF4J 作者推出的新一代日志实现框架,成为当前最常用的日志实现框架。
  6. 2014 年:Log4j2

    • Log4j 官方升级版,功能更强,性能更优。

1.2 日志规范及实现分类

日志规范

  • JCL
  • SLF4J

所谓规范,即仅定义了顶层的接口API。

这里面有个趣事,我正常开发的程序,在适配信创环境下的东方通时,日志报错了。

经过层层排查,发现东方通将slf4j的包名org.slf4j修改成了com.tongweb.slf4j,然后对方又提供了适配1的sdk,感觉有点好笑。细节可以参考取于开源,反哺开源 - 言成言成啊

日志实现框架

  • Log4j/Reload4j/Log4j2
  • JUL
  • Logback

参考致谢

SLF4J

reload4j

Logback Home

日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)

发布:2025-01-21 21:58:16
修改:2025-01-21 23:31:50
链接:https://meethigher.top/blog/2025/slf4j-logback/
标签:java log 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏