gpt4 book ai didi

maven - 如何抑制关于多个绑定(bind)的 SLF4J 警告?

转载 作者:行者123 更新时间:2023-12-03 21:17:13 26 4
gpt4 key购买 nike

我的 java 项目依赖于不同的 SLF4J 版本。如何抑制烦人的警告?

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:xyz234/lib/slf4j-
log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:xyz123/.m2/repository/org/slf4j/slf4j-log4j12
/1.6.0/slf4j-log4j12-1.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

P.S.:这和 slf4j warning about the same binding being duplicate 不是同一个问题。 ,答案是如何摆脱误报警告,但在我的情况下,这是一个真正的警告。
P.S.S.:对不起,我忘了说:我使用 Maven 并且 SLF4J 包含在我的依赖项的依赖项中。

最佳答案

删除 slf4j-log4j12-1.5.8.jar 之一或 slf4j-log4j12-1.6.0.jar从类路径。您的项目不应依赖于不同版本的 SLF4J。我建议你只使用 1.6.0。

如果你使用 Maven,你可以 exclude transitive dependencies .这是一个例子:

<dependency>
<groupId>com.sun.xml.stream</groupId>
<artifactId>sjsxp</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>

current slf4j-api implementation无法删除这些警告。 org.slf4j.LoggerFactory类打印消息:
  ...
if (implementationSet.size() > 1) {
Util.report("Class path contains multiple SLF4J bindings.");
Iterator iterator = implementationSet.iterator();
while(iterator.hasNext()) {
URL path = (URL) iterator.next();
Util.report("Found binding in [" + path + "]");
}
Util.report("See " + MULTIPLE_BINDINGS_URL + " for an explanation.");
}
...
Util类如下:
public class Util {

static final public void report(String msg, Throwable t) {
System.err.println(msg);
System.err.println("Reported exception:");
t.printStackTrace();
}
...
report方法直接写入 System.err .解决方法可能是替换 System.err System.setErr() 在第一个 LoggerFactory.getLogger() 之前打电话,但如果你这样做,你可能会丢失其他重要信息。

当然你可以下载源代码并删除这些 Util.report在您的项目中调用并使用您修改后的 slf4j-api。

关于maven - 如何抑制关于多个绑定(bind)的 SLF4J 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571506/

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