您的位置:首页 > 其它

【区别】Slf4j、log4j、logback

2017-12-05 17:36 253 查看

日志框架

日志框架中,经常出现的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 日志实现)

结合上段中的日志架构图,各层次比较清晰了,是不是很简单

使用

应用中不要直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志方式处理统一。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(Abc.class);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: