1.认识slf4j

一、框架介绍

相关地址

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核心结构

在这里插入图片描述

个人公众号
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncleqiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值