Log4j/slf4j/common-logging/logback日志
随着spring得使用,会听到很多日志相关的库,log4j
/slf4j
/common-logging
/log4j-over-slf4j
,之前没太搞懂这些日志系统是在说什么,今天看了这篇文章),理解了很多。
首先日志系统基础概念可以分两部分,一个是接口,一个是实现。
- 接口:就是调用的时候怎么调用的接口类
- 实现:整整实现输出日志逻辑功能得
其中slf4j
和common-logging
属于接口。
log4j
和logback
属于实现。
具体来说,common-logging
接口和log4f
可以认为一代,通过common-logging
接口,使用log4j
。
而slf4j
的出现是希望替代common-logging
,同样logback
是希望替代log4j
。
slf4j
对应common-logging
的优势是接口上,支持格式化的日志输出参数,不用很多+
加号拼接这样。
而logback
对应log4j
的优势应该是效率上的。
其他的可以看到又有一些诸如log4j-over-slf4j
这样的库,是相当于把log4j
适配到了slf4j
接口上,属于接口层和实现层之间的适配层。