slf4j、log4j、logback关系详解和相关用法

一.slf4j、log4j、logback的关系

1.The Simple Logging Facade for Java(slf4j)是什么?

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

  • log4j是apache实现的一个开源日志组件
  • logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。是slf4j的原生实现。
    slf4j、log4j、logback关系详解和相关用法
    slf4j、log4j、logback关系详解和相关用法
    上图可以看到应用程序对日志框架的调用关系。应用程序调用slf4j api,而日志的输出最终是由底层的日志框架来实现的。这张图也提现了log4j和logback的不同。可以看到logback是直接实现了slf4j的接口,是不消耗内存和计算开销的。而log4j不是对slf4j的原生实现,所以slf4j api在调用log4j时需要一个适配层
2.logback的优势:
  • 更快的执行速度
  • 充分的测试
  • logback-classic 非常自然的实现了SLF4J
  • 丰富的扩展文档
  • 可以使用XML配置文件或者Groovy
  • 自动重新载入配置文件
  • 优雅地从I/O错误中恢复
  • 自动清除旧的日志归档文件
  • 自动压缩归档日志文件
  • 更多优点可参考官方文档。中文版
3.slf4j绑定log4j的用法

使用idea和maven为例
(1)在pom.xml添加相关依赖。

   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
    </dependency>

slf4j、log4j、logback关系详解和相关用法此时会自动添加三个jar包。
https://www.cnblogs.com/suger43894/p/9543429.html