日志信息jar包 slf4j-api、slf4j-log4j12、log4j 之间的关系和使用
slf4j-api、slf4j-log4j12、log4j 之间的关系:
- 首先系统包含slf4j-api作为日志接入的接口:编译时slf4j-api中public final class LoggerFactor类中private final static void bind()方法会寻找具体的日志实现类绑定,主要通过StaticLoggerBinder.getSingleton()的语句调用。
- slf4j-log4j12是链接slf4j-api和log4j中间的适配器:它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法。
- log4j是具体的日志系统:通过slf4j-log4j12初始化Log4j,达到最终日志的输出。
- 可参考官方文档:https://www.slf4j.org/manual.html
https://www.slf4j.org/
为什么选择这个组合?
JCL太老了,jboss-logging太专业了,SLF4j和Log4j以及Logback是出自同一个人的手中。
maven配置:
<properties>
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
配置log4j.properties
External Libraries
还没有评论,来说两句吧...