다음과 같은 오류가 발생합니다. sl4j에 바인딩 된 여러 로깅 프레임 워크가있는 것 같습니다. 이 문제를 해결하는 방법을 잘 모르겠습니다. 도움을 주시면 감사하겠습니다.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
답변
충돌을 일으킨 종속성 (pom.xml)에 다음 제외를 추가하여 해결되었습니다.
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
답변
Gradle 버전;
configurations.all {
exclude module: 'slf4j-log4j12'
}
답변
오류는 아마도 이와 같은 더 많은 정보를 제공 할 것입니다 (jar 이름은 다를 수 있지만)
SLF4J : [jar : file : / D : /Java/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar! / org / slf4j / impl / StaticLoggerBinder에서 바인딩 발견 .class] SLF4J : [jar : file : / D : /Java/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.8.2/log4j-slf4j-impl-2.8.2.jar에서 바인딩이 발견되었습니다. ! /org/slf4j/impl/StaticLoggerBinder.class]
충돌은 두 개의 이름을 항아리에서 오는 것을 발견 logback-classic-1.2.3
하고 log4j-slf4j-impl-2.8.2.jar
.
mvn dependency:tree
이 프로젝트 pom.xml 상위 폴더에서 다음을 실행하십시오 .
이제 무시하고 싶은 것을 선택하십시오 (세련된 노력을 기울일 수 있으므로 더 많은 도움이 필요합니다)
나는에서 수입 하나를 사용하지 않기로 결정 spring-boot-starter-data-jpa
을 통해 (상단 의존성을) spring-boot-starter
과 통해 spring-boot-starter-logging
, 치어가된다 :
<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-data-jpa</artifactId>
</dependency>
위 치에 spring-boot-starter-data-jpa
사용 것이다 spring-boot-starter
하는 배제 동일한 파일 구성 logging
(포함 된 logback
)
답변
SBT 버전 :
exclude("org.slf4j", "slf4j-log4j12")
전 이적으로 포함하는 종속성에 추가 합니다 slf4j-log4j12
. 예를 들어 Log4j 2.6과 함께 Spark를 사용하는 경우 :
libraryDependencies ++= Seq(
// One SLF4J implementation (log4j-slf4j-impl) is here:
"org.apache.logging.log4j" % "log4j-api" % "2.6.1",
"org.apache.logging.log4j" % "log4j-core" % "2.6.1",
"org.apache.logging.log4j" % "log4j-slf4j-impl" % "2.6.1",
// The other implementation (slf4j-log4j12) would be transitively
// included by Spark. Prevent that with exclude().
"org.apache.spark" %% "spark-core" % "1.5.1" exclude("org.slf4j", "slf4j-log4j12")
)
답변
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-log4j2</artifactId>-->
<!--</dependency>-->
나는 이것을 삭제하여 해결했다 : spring-boot-starter-log4j2
답변
답변
필요한 의존성 만 사용하고 전부는 아닙니다 :))). 나에게 로깅 프로세스의 정상적인 작업을 위해서는이 종속성이 필요합니다. 다른 것들을 pom.xml에서 제외하십시오.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.8</version>
</dependency>