1、市面上的日志框架:
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j......
SpringBoot中使用的日志框架:
日志接口层:SLF4J
日志实现:LogBack
Spring使用的日志框架:JCL(commons-logging)
2、slf4j的使用
开发中日志方法的调用,不应该直接调用日志的实现类方法,而是调用日志抽象层里面的方法:给系统里面导入slf4j的jar和 logback的实现jar
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}
slf4j使用图示:
每一个日志的实现框架都有自己的配置文件,使用slf4j时,配置文件还是各日志实现框架自己本身的配置文件
3、项目中有多个日志框架的问题
比如Spring框架中使用了commons-logging、Hibernate中使用了jboss-logging,这时如果我们依然想使用slf4j的方式,根据slf4j的官网我们可以这样:
①依然导入slf4j及其实现所需要的jar包
②需要将其他框架中依赖的日志jar包排除
③根据图示引入slf4j提供的替换包
举例:若项目中我们想使用slf4j+logback,但是项目中我们使用了Spring框架,而Spring框架依赖于commons-logging,这时我们需要导入slf4j-api.jar、logback-classic.jar、logback-core.jar,在引入Spring的jar包时将commons-loggings的jar包排除,但是由于Spring没有了commons-logging会报错,我们需要额外引入jcl-over-slf4j.jar,用jcl-over-slf4j.jar来替换commons-loggings.jar,jcl-over-slf4j.jar中的方法其实调用了slf4j的实现层方法即logback中的方法。