一、框架介绍
相关地点
slf4j官网: https://www.slf4j.org/
slf4jgithub地点: 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核心布局
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |