gpt4 book ai didi

java - slf4j/logback/jcl-over-slf4j - 即使 jcl-over-slf4j 不在依赖项中,仍然路由到 logback?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:32:22 28 4
gpt4 key购买 nike

在尝试日志依赖时,我遇到了以下情况:

<repositories>
<repository>
<id>version99</id>
<url>http://version99.qos.ch/</url>
</repository>
</repositories>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>99-empty</version>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!--<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>

重要的是要注意对 jcl-over-slf4j 的依赖被注释掉了。令我惊讶的是,来自 Spring 的日志仍然由 Logback 处理。这怎么可能? jcl 和 slf4j 之间没有激活的桥接,那么我们怎么会在 Logback 中结束呢?

我证实:

  • 只有 commons-logging-99-empty.jar 在类路径中。
  • mvn dependency:tree -Dverbose -Dincludes=org.slf4j
  • 中没有提到 jcl-over-slf4j

我真的很困惑。我希望 NoClassDefFoundError 来自 commons-logging 的类。

请注意,我无意在评论中将这种依赖关系留给 jcl-over-slf4j。我只想了解发生了什么。我以为我终于理解了这些日志依赖关系,但显然,在实践中,它的行为与我预期的完全不同。

最佳答案

您使用的是 Spring 5 吗?

在Spring 5中,又引入了一个所谓的bridge:spring-jcl。参见 https://jira.spring.io/browse/SPR-14512用于开发说明。

所以在你的情况下,虽然 jcl-over-slf4j 不再在类路径中,但 spring-jcl 仍然存在并且它正在做 完全相同的事情事情(还有更多,因为它还将 commons-logging 路由到 log4jjava.util.logging ,具体取决于什么在你的类路径上)作为 jcl-over-slf4j

如果你同时拥有jcl-over-slf4jspring-jcl,那么谁胜出基本上是不确定的。没关系,因为他们都做同样的事情。但是,您有重叠的类,因此这可能会影响到您的其他地方。

这是最好的记录恐怖。

关于java - slf4j/logback/jcl-over-slf4j - 即使 jcl-over-slf4j 不在依赖项中,仍然路由到 logback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47060417/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com