SpringBoot——日志框架

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使用图示:

SpringBoot——日志框架_第1张图片

每一个日志的实现框架都有自己的配置文件,使用slf4j时,配置文件还是各日志实现框架自己本身的配置文件

3、项目中有多个日志框架的问题

比如Spring框架中使用了commons-logging、Hibernate中使用了jboss-logging,这时如果我们依然想使用slf4j的方式,根据slf4j的官网我们可以这样:

SpringBoot——日志框架_第2张图片

①依然导入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中的方法。

你可能感兴趣的:(SpringBoot)