如果有多个SLF4J绑定,如何使用SLF4J

时间:2012-08-22 02:35:24

标签: java eclipse slf4j

当我将SLF4J记录器添加到我的代码中时,我收到一条错误消息,“类路径包含多个SLF4J绑定”。在网站slf4j.org/codes上,它声明我应该从类路径中删除它们。但是,这两个记录器包含在我的maven依赖项中。我的整个maven依赖文件夹都包含在类路径中。我不负责maven依赖项的内容,因此我不能编辑它,以便它只在maven依赖项文件夹中有一个logger依赖项。我可以指定Java程序,以便它只使用其中一个记录器吗?

EJAY

2 个答案:

答案 0 :(得分:1)

如果您确定无法调整现有的maven依赖项来解决问题,可以先确保SLF4J绑定首先出现在类路径中,因为第一个绑定是在多个情况下使用的绑定绑定。

然而,您仍然会收到警告,但您的SLF4J记录器将会被使用。

您还可以考虑使用maven模块将项目拆分为多个部分,以便您可以在每个模块的pom.xml文件中以不同方式管理每个部分中的依赖关系。

答案 1 :(得分:1)

找出你的项目的哪些依赖项包括slf4j实现,然后排除它:

    <dependency>
        <groupId>other-group</groupId>
        <artifactId>dependency-id</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                                    <!-- or slf4j-jdk14, etc -->
                <artifactId>slf4j-simple</artifactId>
            </exclusion>
        </exclusions>
    </dependency>