- 日志门面
是对不同日志框架提供的一个抽象层(统一接口),可在部署的时候不修改任何配置即可接入一种日志实现方案,SLF4j 属于一个日志门面 - 日志实现框架
Log4j、Logback、Log4j2 都属于日志实现框架,其中Logback 是Log4j 的升级版;SpringBoot框架选用的是SLF4j +Logback 组合 - SLF4j +Logback 的使用
开发中,日志记录方法的调用,形式上是调用抽象层的方法,实质上是调用的实现层的方法;要使用SLF4j +Logback,只需导入SLF4j 与Logback 的依赖即可 - SLF4j +Log4j 的使用
由于Log4j 出现早于SLF4j,需额外添加适配层slf4j-log4j12.jar,这样Log4j 也能符合SLF4j 规范 - 配置文件取决于具体日志实现框架
- 统一日志记录
开发中,框架之间的整合可能会导致混乱,因为不同框架自身带有不同的日志实现框架,所以需要一个转换;例如需要统一使用SLF4j +Logback 组合时,额外再添加 log4j-over-slf4j,它的作用就是将引入的jar 包中的Log4j 换为SLF4j ,所有使用Log4j 打印日志的地方将会转换为SLF4j 打印日志,而SLF4j 实际调用的是Logback 来具体的打印日志,这样就可以将项目中的日志框架统一 - 统一日志到SLF4j 步骤小结(SpringBoot 选用SLF4j +Logback 组合的原理也是这样的)
- 排除框架自带的日志框架(导入依赖时排除,如只排除,框架无法运行,故引出第二步)
- 导入中间包例如log4j-over-slf4j 去替代被排除的日志框架
- 导入SLF4j 具体的实现框架如Logback
PS: 使用SpringBoot框架时,如引入其他框架,只需将其他框架自带的日志框架排除即可
SLF4j、Log4j、Log4j2、Logback 以及统一日志
最新推荐文章于 2023-11-18 23:02:10 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)