slf4j和Log4j、log4j2等的关系
2018-11-23 本文已影响0人
路小小飞
https://www.cnblogs.com/xing901022/p/4149524.html

面向接口编程,告诉我们使用具体的日志系统,不方便升级换代,引入的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