*-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进行日志记录。