*-over-slf4j 是 SLF4J 提供的一系列桥接依赖包,它们用于将其他日志框架的API调用重定向到SLF4J,这样就可以使用统一的SLF4J接口,并通过配置SLF4J的绑定器来选择实际的日志实现。以下是一些常见的 *-over-slf4j 桥接依赖包:
-
jcl-over-slf4j:
这个桥接包允许你将Apache Commons Logging(JCL)的API调用重定向到SLF4J。如果你的应用或依赖的第三方库使用了JCL,但你想通过SLF4J和你选择的日志框架(如Logback、Log4j 2等)来处理日志,可以添加这个依赖。 -
log4j-over-slf4j:
这个桥接包允许你将Log4j的API调用重定向到SLF4J。如果你的应用或依赖的第三方库使用了Log4j 1.x,但你想通过SLF4J和你选择的日志框架来处理日志,可以添加这个依赖。 -
java.util.logging.slf4j:
这个桥接包允许你将Java Util Logging(JUL)的API调用重定向到SLF4J。如果你的应用或依赖的第三方库使用了JUL,但你想通过SLF4J和你选择的日志框架来处理日志,可以添加这个依赖。
在使用这些桥接依赖包时,需要注意以下几点:
- 在同一个项目中,应该只使用一个日志实现框架,避免同时使用多个日志框架导致日志混乱。
- 在添加 *-over-slf4j 桥接依赖的同时,需要排除原有的日志实现依赖。例如,如果你选择了jcl-over-slf4j,并想使用Logback作为日志实现,那么需要在项目的依赖管理中排除commons-logging的直接依赖。
以下是一个Maven依赖示例,展示了如何使用jcl-over-slf4j桥接依赖并将原有的commons-logging排除:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- Exclude commons-logging from other dependencies -->
<dependency>
<groupId>some.third-party.library</groupId>
<artifactId>library-name</artifactId>
<version>library-version</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
在这个示例中,我们添加了jcl-over-slf4j和logback-classic依赖,并在一个第三方库中排除了commons-logging依赖。这样,所有原本使用commons-logging的日志调用都会被重定向到SLF4J,并通过logback进行日志记录。