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

阅读: 评论:0

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

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

SLF4J(The Simple Logging Facade for Java)

官方文档是这样说明的
The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks, such as java.util.logging, logback and log4j. SLF4J allows the end-user to plug in the desired logging framework at deployment time. Note that SLF4J-enabling your library/application implies the addition of only a single mandatory dependency, namely slf4j-api-1.7.22.jar.

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

因为是接口,所以在项目中如果你不引用log4j 、logback或者其它日志框架你会发现,控制台的输出是这样的


从运行结果可以看到,由于没有给出具体的logger实现,无法在控制台输出日志。也就是说我们在具体开发中,需要绑定一个日志框架,才能正常的使用slf4j。

log4j和logback呢

而log4j和logback就是两个受欢迎的日志框架。但两者又有不同。

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

接下来一起看一下应用程序对日志框架的调用关系,看下图



可以看到logback是直接实现了slf4j的接口,而log4j不是对slf4j的原生实现,所以slf4j api在调用log4j时需要一个适配层。

官方文档对logback是这样说的:
Native implementation There are also SLF4J bindings external to the SLF4J project, e.g.logback which implements SLF4J natively. Logback'sch.qos.logback.classic.Logger class is a direct implementation of SLF4J'sorg.slf4j.Logger interface.Thus, using SLF4J in conjunction with logback involves strictly zero memory and computational overhead. 

也就是说logback实现slf4j是不消耗内存和计算开销的。


最后总结一下:

  1. slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架。
  2. 他们可以单独的使用,也可以绑定slf4j一起使用。
  • 单独使用。分别调用框架自己的方法来输出日志信息。
  • 绑定slf4j一起使用。调用slf4j的api来输入日志信息,具体使用与底层日志框架无关(需要底层框架的配置文件)

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






*以上整理内容来自 .html 更详细内容请移步。




本文发布于:2024-01-30 05:34:44,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170656408619585.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:关系   slf4j   log4j   logback
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23