无法从类路径中删除logback

时间:2017-03-28 16:06:38

标签: spring-boot logback

在我的应用程序中,有两个日志文件(ClassGuid)的绑定。见下文:

org/slf4j/impl/StaticLoggerBinder.class

这里我试图从类路径中删除logback:

SLF4J: Found binding in [jar:file:/C:/Users/n12017/.m2/repository/ch/qos/logback/logback-classic/1.1.9/logback-classic-1.1.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/n12017/.m2/repository/cosine-lsh/cosinelsh/1.0/cosinelsh-1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]

我也尝试从相关依赖中排除:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>logback-classic</groupId>
                    <artifactId>ch.qos.logback</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

然而,我失败了。如何删除logback?

以下是依赖关系树中的相关部分:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

提前致谢。

3 个答案:

答案 0 :(得分:3)

您的groupIdartifactId方式错误。排除应该是:

<exclusion>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</exclusion>

您可能希望排除logback-classic而不是仅排除spring-boot-starter-logging

<exclusion>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</exclusion> 

这将确保不包括启动器所依赖的各种其他与Logback和SLF4J相关的依赖关系。

答案 1 :(得分:0)

需要在spring-boot-starter和spring-boot-starter-web中都添加排除项。这样可以解决冲突。

在pom.xml中添加以下依赖项:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
  </exclusions>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
    </exclusion>
  </exclusions>
</dependency>

答案 2 :(得分:0)

你们很亲近。您忘记添加提供的范围。

我设法通过添加这些行来排除 logback:

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>logback-classic</groupId>
                        <artifactId>ch.qos.logback</artifactId>
                    </exclusion>
                </exclusions>
                <scope>provided</scope>
            </dependency>