在程序运行过程中,日志非常重要。是记录程序运行状况,寻找bug,维护稳定性的重要工具。但市面上的日志系统十分繁多,于是在这里记录并整理。如有错误,请评论区留言告知。
日志门面与日志产品
日志门面
日志门面又称日志接口,它并不是真正的日志实现,但是对上层提供了一套统一的API,故在代码层面可以使用统一的写法,而引入不同的适配器来实现不同的日志输出。
主流的日志门面有
JCL
(Jakarta Commons Logging)slf4j
(Simple Logging Facade for Java)
日志实现
真正的日志实现。主要有
JUL
(JDK自带)logback
log4j
log4j2
在我们的项目中,通常会用到不同的组件与模块。由于不同开发者可能会使用不同的日志系统,为了让我们的日志打印出来工整统一,且避免包的冲突,合理使用桥接包与适配器就非常重要。
桥接包与适配器
适配器就是从SLF4J
到 日志实现
的包,封装了统一的API。
桥接包就是从日志实现
到SLF4J
的包,对于已经使用日志实现A的模块,使用桥接包将其链接到日志门面上,就可以再次适配到其他日志实