hooyantsing's Blog

P23 SLF4J日志绑定

字数统计: 678阅读时长: 3 min
2022/04/23

视频源:黑马程序员java日志框架教程,全面深入学习多种java日志框架

绑定日志的实现(Bingding)

image-20220423182634839

蓝色表示可以直接使用,青色表示需要一个适配层才可使用。

该图源自官方文档。

使用 SLF4J 的日志绑定流程:

  1. 添加 slf4j-api 的依赖;
  2. 使用 slf4j 的 API 在项目中进行统一的日志记录;
  3. 绑定具体的日志实现框架;
    1. 绑定已经实现了 slf4j 的日志框架,直接添加对应的依赖;
    2. 绑定没有实现 slf4j 的日志框架,先添加日志的适配器,再添加实现类的依赖;
  4. slf4j 有且仅有一个日志实现框架的绑定,如果出现多个,默认使用第一个依赖日志实现。

SLF4J 绑定 logback

导入依赖:

1
2
3
4
5
6
7
8
9
10
11
12
<!--slf4j 日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<!--logback 日志实现-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>

注意,当存在多个 SLF4J 实现时,绑定第一个实现依赖。

logback-classic 传递依赖 logback-core。

SLF4J 绑定 slf4j-nop

相当于日志开关,当引入该包时,日志功能失效。

导入依赖:

1
2
3
4
5
6
7
8
9
10
11
12
<!--slf4j 日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<!--关闭日志-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.25</version>
</dependency>

SLF4J 绑定 log4j

Step 01 导入依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!--slf4j 日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>

<!--log4j 日志实现,需要导入适配器-->
<!--slf-4j 对 log4j 适配器-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
<!--log4j 日志实现-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

Step 02 将 log4j.properties 配置文件放入 src/main/resources 目录,重新构建项目(File -> Rebuild Module)。

SLF4J 绑定 jul

导入依赖:

1
2
3
4
5
6
7
8
9
10
11
12
<!--slf4j 日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<!--jul 日志实现,需要导入适配器-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.25</version>
</dependency>
CATALOG
  1. 1. 绑定日志的实现(Bingding)
    1. 1.1. 使用 SLF4J 的日志绑定流程:
    2. 1.2. SLF4J 绑定 logback
    3. 1.3. SLF4J 绑定 slf4j-nop
    4. 1.4. SLF4J 绑定 log4j
    5. 1.5. SLF4J 绑定 jul