一、框架介绍
相关地址
slf4j官网: https://www.slf4j.org/
slf4j项目地址: https://github.com/qos-ch/slf4j
logback官网文档: https://logback.qos.ch/manual/introduction.html
logback项目地址: https://github.com/qos-ch/logback
logback中文文档: https://github.com/YLongo/logback-chinese-manual/blob/master/01%E7%AC%AC%E4%B8%80%E7%AB%A0%EF%BC%9Alogback%20%E4%BB%8B%E7%BB%8D.md
官网介绍
The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, reload4j, log4j 2.x, logevents, penna, rainbowgum, tinylog) allowing the end user to plug in the desired logging framework at deployment time.
Java 简单日志门面(SLF4J)是一个为各种日志框架(如 java.util.logging、logback、reload4j、log4j 2.x、logevents、penna、rainbowgum、tinylog 等)提供的简单门面或抽象层,允许最终用户在部署时选择并插入所需的日志框架。
版本依赖
版本: 2.0.15(最新是2.0.16)
gav如下
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.15</version>
</dependency>
2.0.x版本需要运行在java8及以上的环境下, 需要在java9及以上的环境下构建
logback
gav如下
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.15</version>
<scope>test</scope>
</dependency>
logback目前的最高版本是1.5.15对应的slf4j-api:2.0.15, 它的master分支对应slf4j-api:2.0.16
二、模块依赖图

这张图展示了 SLF4J(Simple Logging Facade for Java) 的各种绑定实现,以及它们在应用中的具体工作方式。以下是图中内容的逐项解释:
1. SLF4J Unbound
描述:如果项目只引入了 slf4j-api.jar,但没有任何绑定实现(如 logback-classic、reload4j 等),SLF4J 调用的日志会被丢弃。
输出:所有日志都会被写入 /dev/null,即不会有任何日志记录。
2. SLF4J Bound to Logback-Classic
描述:slf4j-api.jar 与 logback-classic.jar 结合使用,使用 Logback 作为日志框架。
特点:
- Logback 是 SLF4J 推荐的默认实现。
- 提供强大的功能和性能支持(如异步日志、分片归档等)。
输出:日志按照 Logback 的配置输出。
3. SLF4J Bound to Reload4j
描述:slf4j-api.jar 通过 slf4j-reload4j.jar 的适配层与 reload4j 绑定。
特点:
-
reload4j 是 Log4j 1.x 的替代版本,用于维护旧项目。
-
提供与 Log4j 1.x 相同的 API。
输出:日志通过 Reload4j 配置输出。
4. SLF4J Bound to java.util.logging
描述:slf4j-api.jar 使用 slf4j-jdk14.jar 将日志委托给 JDK 自带的日志框架 java.util.logging。
特点:
- 使用 JDK 内置日志功能。
- 配置简单,但功能有限(如缺少异步支持)。
输出:日志通过 java.util.logging 输出。
5. SLF4J Bound to Simple
描述:slf4j-api.jar 与 slf4j-simple.jar 配合使用,提供一个非常简单的日志实现。
特点:
- 易用性高,不需要额外配置。
- 功能较为单一。
输出:日志直接输出到控制台(标准输出流)。
6. SLF4J Bound to No-Operation
描述:slf4j-api.jar 与 slf4j-nop.jar 配合使用,完全禁用日志记录。
特点:
- 日志记录被忽略。
- 适合需要禁用日志的场景(如测试或轻量级项目)。
输出:所有日志被丢弃,相当于 /dev/null。
推荐实现:Logback(logback-classic)是官方推荐的实现,适合大多数场景。
三、logback核心结构

个人公众号

SLF4J与Logback框架介绍
817

被折叠的 条评论
为什么被折叠?



