slf4j log4j logback之间的关系,哪个更好些

slf4j是一系列的日志接口,而log4j logback是具体实现了的日志框架。

而log4j和logback就是两个受欢迎的日志框架。但两者又有不同。
log4j是apache实现的一个开源日志组件。(Wrapped implementations)
logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。是slf4j的原生实现。(Native implementations)

在这里插入图片描述

可以看到logback是直接实现了slf4j的接口,而log4j不是对slf4j的原生实现,所以slf4j api在调用log4j时需要一个适配层。
也就是说logback实现slf4j是不消耗内存和计算开销的。

最后总结一下:
1、slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架。
2、他们可以单独的使用,也可以绑定slf4j一起使用。

单独使用。分别调用框架自己的方法来输出日志信息。
绑定slf4j一起使用。调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)

显然这里我们不推荐单独使用日志框架。假设项目中已经使用了log4j,而我们此时加载了一个类库,而这个类库依赖另一个日志框架。这个时候我们就需要维护两个日志框架,这是一个非常麻烦的事情。而使用了slf4j就不同了,由于应用调用的抽象层的api,与底层日志框架是无关的,因此可以任意更换日志框架。

猜你喜欢

转载自blog.csdn.net/u011915230/article/details/83042622