在java的众多开源项目中,有很多日志框架,如Commons-logging、Log4j、logback和JDK自带的logging。这些日志框架也有自己的接口,但是这些接口定义不统一,在项目开发时不容易相互切换。于是有了SLF4J。
可以看出SLF4J只是一个统一的定义,并未提供日志功能的实现。但是在业务项目开发时,可以使用SLF4J进行编码,然后再引入两个依赖,一个是具体的日志框架,一个是从slf4j到这个日志框架的桥接。从而实现灵活更换具体日志框架的目的。
可参见(http://blog.onlycatch.com/post/cfbc30f8d1ba
http://blog.csdn.net/chszs/article/details/8653460)
具体的桥接依赖如下:
jcl-over-slf4j commons-logging到slf4j的桥梁
log4j-over-slf4j log4j1到slf4j的桥梁
jul-to-slf4j jdk-logging到slf4j的桥梁
slf4j-jdk14 slf4j到jdk-logging的桥梁
slf4j-log4j12 slf4j到log4j1的桥梁
log4j-slf4j-impl slf4j到log4j2的桥梁
logback-classic slf4j到logback的桥梁
slf4j-jcl slf4j到commons-logging的桥梁
可参见(https://my.oschina.net/pingpangkuangmo/blog/410224)
Commons-logging
是apache最早提供的日志的门面接口。common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。
http://blog.onlycatch.com/post/cfbc30f8d1ba
Log4j
经典的一种日志解决方案。
http://blog.onlycatch.com/post/cfbc30f8d1ba
Logback
也是一种日志实现。Logback是由log4j创始人设计的又一个开源日记组件