在Java依赖中经常看到各种日志依赖,但搞不清他们之间的关系。
API类:
Commons Logging
SLF4J
实现类
JDK Logging
Logback
Log4J
Log4J2(其实这只是Log4J的2.x版本,但因为有比较大改动,所以网上有比较多人单独列出以区分Log4J 1.x版本)
ps: 入门教程可参考廖雪峰的网站
其实SLF4J类似于Commons Logging,也是一个日志接口,而Logback类似于Log4j,是一个日志的实现。
为什么有了Commons Logging和Log4j,又会蹦出来SLF4J和Logback?这是因为Java有着非常悠久的开源历史,不但OpenJDK本身是开源的,而且我们用到的第三方库,几乎全部都是开源的。开源生态丰富的一个特定就是,同一个功能,可以找到若干种互相竞争的开源库。
因为对Commons Logging的接口不满意,有人就搞了SLF4J。因为对Log4j的性能不满意,有人就搞了Logback。
每种不同实现的接入只需要引入对应的jar包即可,很方便。譬如最近在用的Log4J2, 引入下列依赖即可:
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
注意:这个小字儿部分说了,并不是说所有的项目都需要引入那几个桥接的jar包,只有你真正用到了才需要引入。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/sweetyi/article/details/104631774
内容来源于网络,如有侵权,请联系作者删除!