2006年Log4j的作者推出新的日志标准接口规范Slf4j(Simple Logging Facade for Java),也可以称为日志门面,用来对标JCL,它比JCL更优秀。
Slf4j之后的项目统一日志标准的方式:假设项目D、E都使用Slf4j接口,首先在代码层已经统一了,如果要做到日志标准统一也十分简单,直接替换日志标准库与对应的桥接包即可,就如下图所示:
Slf4j之前的项目统一日志标准的方式:假充把A、B、C项目都统一成Log4j日志输出,只需要引入Slf4j与相关的桥接包,再引入具体的日志标准库,比如Log4j,就完成了3个项目的统一日志标准,对代码层是零入侵,如下图所示:
2006年,基于Slf4j接口推出了Logback日志标准库,做为Slf4j接口的默认实现,Logback在功能完整度和性能上超越了所有已有的日志标准库。
2012年,Apache推出Log4j2(不兼容Log4j),Log4j2全面借鉴Slf4j+Logback:Log4j2不仅仅具有Logback的所有特性,还做了分离设计,分为log4j-api和log4j-core,log4j-api是日志接口,log4j-core是日志标准库,并且Apache也为Log4j2提供了各种桥接包……
到目前为止Java日志体系被划分为两大阵营,分别是Apache阵营和Ceki阵营,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 0210511124105260.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpYW5naGVjYWk1MjE3MTMxNA==,size_16,color_FFFFFF,t_70)
Spring框架内部使用JCL做日志输出标准,项目使用Slf4j + Logback做日志输出标准。之所以能够让项目内的Spring保持统一日志输出标准就是通过引入正确的Slf4j桥接包,去除无用的日志组件实现的。
[](()推出时间
| 日志 | 推出时间 |
| — | — |