日志信息jar包slf4j-api、slf4j-log4j12、log4j 之间的关系和使用

it2025-10-03  8

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

jar包配置(5个包)

最新回复(0)