市场上日志有很多:
jdklogging 简称jul
log4j
common-logging 简称 jcl
slf4j
等
其中 jul 和log4j是不可扩展的,好比如java中的一个类
jcl 是扩展的 好比如java中的接口 : 源码中 jcl 是for循环去判断 项目中是否有先有log4j .有就用.没有就用jul14(jdk1.4).在没有就jul13(jdk1.3) ,在没有就simplelog,但是该框架好像不维护了.
slf4j 这个现在最流行的也最牛b. 它也是可以扩展的.看官方文档也知道.他有两种技术. 绑定和桥接
个人理解这两个技术
绑定.:假设项目中使用了slf4j+log4j ,那么就是绑定了该项目用的, 如下
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jslf4j-log4j12</artifactId>
<version>1.7.24</version>
</dependency>
但是如果项目中其他人开发的时候用了jcl日志,那日志不是就很乱.一个项目有多个日志类型
所以slf4j提供了桥接技术:
桥接:把其他日志通过桥接器变成自己的