slf4j和Log4j、log4j2等的关系

在这里插入图片描述面向接口编程,告诉我们使用具体的日志系统,不方便升级换代,引入的jar中的日志系统还可能不一样,无法使用,所以需要一个统一的日志接口,可以兼容各类日志系统。那就是slf4j。

slf4j提供接口,供用户使用。但不提供实现,用户要在自己的项目中进行选择配置期望的日志系统。只要引入的jar中都使用slf4j,那么就不会出现兼容问题。

具体使用方法是,在slf4j和具体的日志系统中间使用桥接,实现slf4j的spi接口,同时使用具体的日志系统。

给出几套方案:

1、slf4j+log4j

log4j核心jar包:log4j-1.2.17.jar

slf4j核心jar包:slf4j-api-1.6.4.jar

slf4j与log4j的桥接包:slf4j-log4j12-1.6.1.jar,这个包的作用就是使用slf4j的api,但是底层实现是基于log4j

2、slf4j+log4j2

log4j2核心jar包:log4j-api-2.7.jar和log4j-core-2.7.jar

slf4j核心jar包:slf4j-api-1.6.4.jar

slf4j与log4j2的桥接包:log4j-slf4j-impl-2.7.jar,这个包的作用就是使用slf4j的api,但是底层实现是基于log4j2

如果使用springmvc则还需要增加log4j-web-*.jar的包;
如果要使用log4j2的异步输出方式,还要增加

    <dependency>
      <groupId>com.lmax</groupId>
      <artifactId>disruptor</artifactId>
      <version>3.4.2</version>
    </dependency>

猜你喜欢

转载自blog.csdn.net/u011930054/article/details/103680724