【问题标题】:How to get rid of the "Class path contains multiple SLF4J bindings" warning?如何摆脱“类路径包含多个 SLF4J 绑定”警告?
【发布时间】:2013-01-28 01:08:16
【问题描述】:

这或多或少是一个“常见”问题,但是,我还没有找到一个好的答案。所以,再一次,这里是警告:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/eualin/.m2/repository/org/slf4j/slf4j-jcl/1.6.0/slf4j-jcl-1.6.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/eualin/.m2/repository/org/slf4j/slf4j-log4j12/1.5.11/slf4j-log4j12-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

这里有两个潜在的解决方案[1][2]

假设它们都对我有用,显然,它们只是黑客,我不确定我是否应该依赖它们中的任何一个。你会推荐我什么?请记住,在终端中不会出现警告;只有当我通过 IntelliJIDEA 运行应用程序时。

非常感谢任何建议。

【问题讨论】:

    标签: java warnings slf4j


    【解决方案1】:

    在项目的 POM 文件中,将所需的日志后端设置为在找到的 deps 列表中的默认设置,方法是向您的项目添加对它的直接依赖,例如:

    <groupid>ch.qos.logback</groupid>
    <artifactid>logback-classic</artifactid>
    <scope>runtime</scope>
    </dependency>```
    

    【讨论】:

      【解决方案2】:

      在我的特殊情况下,我在IntelliJ IDEA 中遇到了这个错误,刷新 Gradle 修复了这个错误:

      你可以从View..Tool Windows..Gradle找到这个窗口。

      我们的设置是:

      • IntelliJ IDEA v15
      • 分级
      • 詹金斯
      • SVN

      【讨论】:

      • 谢谢。升级 IntelliJ 后出现此错误并已修复。
      【解决方案3】:

      SLF4J 期望在任何应用程序运行时中只存在一个版本的 StaticLoggerBinder。如果有多个,SLF4J 不能保证日志消息将被路由到适当的记录器。

      SLF4J 的架构要求只使用一个库来路由日志消息(例如slf4j-&lt;logging framework&gt;.jar)。当多个类路径通过应用服务器、IDE、启动脚本等运行时,SLF4J 库可以被多次包含。您可能需要在 IntelliJIDEA 中搜索和查找类路径的添加或修改位置(例如在已配置的 Java 编译器或任何启动配置中)。

      【讨论】:

        【解决方案4】:

        这可能是因为 IntelliJIDEA 正在添加其中一个 slf4j 绑定 JAR 本身。我的猜测是在您运行单元测试时发生的。因此,一种方法是查看您是否可以在单元测试运行器的启动器配置中排除其他 JAR。

        但归根结底,这个警告是无害的,你可以直接忽略它。

        【讨论】:

        • 不,我不想为此应用程序运行单元测试;我只是想运行应用程序本身。最后,我可能会忽略它,请问您有关如何摆脱它的进一步想法,最好完全不触及其他 jar 文件?
        • 这显然是一个运行时类路径问题。您需要确保 IntelliJIDEA 在启动应用程序时没有将两个 JAR 都放在类路径中。我将首先查看 POM 文件及其指定的依赖项。
        猜你喜欢
        • 2021-05-19
        • 2019-04-30
        • 2012-12-11
        • 2016-03-12
        • 2014-05-18
        • 2012-09-11
        • 2020-07-07
        • 2019-08-01
        相关资源
        最近更新 更多