日志框架
日志框架中,经常出现的slf4j、log4j、logback、slf4j-log4j、log4j-over-slf4j等等,让人混淆。为此,特意查找整理了一下,盗贴个图先:
上图中:
- 接口:将所有日志实现适配到了一起,用统一的接口调用
- 实现:目前主流的日志实现
- 旧日志到slf4j的适配器:如果使用了slf4j,但是只想用一种实现,想把log4j的日志体系也从logback输出,这个是很有用的
- slf4j到实现的适配器:如果想制定slf4j的具体实现,需要这些包
slf4j + logback
slf4j: slf4j是一个日志系统的封装,对外提供统一的API,不提供日志具体实现。
logback:和log4j同为日志的一种具体实现。
dependency:
- slf4j-api (slf4j接口)
- logback-classic (logback服务于slf4j的”驱动”)
- logback-core (logback日志实现)
如果系统有依赖log4j日志体系,想统一对接到logback,则需要依赖:
- log4j-over-slf4j
同理,如果是slf4j+log4j组合是怎样呢?
dependency:
- slf4j-api (slf4j接口)
- slf4j-log4j (log4j 服务于slf4j的”驱动”)
- log4j (log4j 日志实现)
结合上段中的日志架构图,各层次比较清晰了,是不是很简单。