从图中可以看出,每个application(请求)对应一个SLF4J抽象层,与继承类似,每个SLF4J实现都有实现类特殊的意义,可以看做子类继承父类的接口,重写父类的方法,每个实现类,都有不同的实现
logback是直接实现了SLF4J框架,可以直接使用调用logback中的方法,属于实现层
log4j与logback不同,没有直接实现SLF4J,则需要借助适配层(slf4j-log412.jar),可以使两个框架进行适配
在springboot中使用SLF4J作为抽象层使用Logback作为实现层,但是对于每个日志框架中都有自己的配置文件,我们现在使用SLF4J以后,配置文件就写日志实现类的配置文件,使用Logback就写logback的配置文件,使用Log4j就写Log4j的配置文件
但是我们在以后开发的过程中会遇到各种各样的框架,比如Spring是用Commons-loggging,Hibernate使用的Jboss-logging,都存在适配问题,所以在SLF4J官网上给出了解决方法.
如何在系统中统一使用SLF4J