-
SLF4J(Simple logging Facade for Java)
Log4j logback Log4j2
slf4j 是 JAVA简易日志门面
是门面模式的日志框架,并不是日志框架的一种实现.
三种都是具体日志框架的实现,也就是日志库
业界常用的日志门面有两种slf4j
和common-logging
常见的日志库log4j
log4j2
logback
log-jdk
其他日志库
常用日志模式
-
slf4j+log4j
log4j 1.X版本由于出现时间比 slf4j 日志门面出现的更早,所以它没有实现slf4j的接口,如果项目中想要使用
slf4j+log4j
那么就需要使用一个日志门面适配器
slf4j-log4j12
来解决接口不兼容的问题
-
slf4j+logback
logback 和 log4j 出自同一个作者 ,logback可以看做是
log4j
的升级版本,并且它本身就已经实现了slf4j
的接口,如果是新工程,也可以使用此日志模式
-
slf4j+log4j2 [墙裂推荐]
log4j2和log4j 也是出自同一个作者,但是
log4j2
是重新架构的一款日志库,它摒弃了log4j
的不足吸收了logback
的优点
使用此模式需要以下组件:
- 日志框架:slf4j
- 日志实现:log4j2
- 桥接包:log4j-slf4j-impl
- log4j2的异步日志 AsyncLogger 依赖于-disruptor
<!--日志包-->
<!-- slf4j核心包-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!--核心log4j2jar包-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version>
</dependency>
<!--需要使用log4j2的AsyncLogger需要包含disruptor-->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.2.0</version>
</dependency>
如果
参考: https://blog.csdn.net/wangpeng322/article/details/80346075
网友评论