Estou recebendo o seguinte erro. Parece que existem várias estruturas de registro vinculadas ao sl4j. Não sei como resolver isso. Qualquer ajuda é muito apreciada.
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.
<exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions>
nas dependecies (de pom.xml) que o conflito causou ajudou a resolver o problemaRespostas:
Resolvido adicionando a seguinte exclusão nas dependências (de pom.xml) que causavam conflito.
fonte
slf4j-log4j12
) é aplicável a todos? ou devemos descobrir a versão da dependência do mvn: tree ?Versão Gradle;
fonte
O erro provavelmente fornece mais informações como essa (embora os nomes dos seus jar possam ser diferentes)
Percebeu que o conflito vem de dois frascos, nomeados
logback-classic-1.2.3
elog4j-slf4j-impl-2.8.2.jar
.Execute
mvn dependency:tree
nesta pasta pai do projeto pom.xml, fornecendo:Agora escolha o que você deseja ignorar (poderia consumir um esforço delicado, preciso de mais ajuda nisso)
Eu decidi não usar o importado a partir de
spring-boot-starter-data-jpa
(o topo de dependência) através despring-boot-starter
e atravésspring-boot-starter-logging
, pom torna-se:no pom acima
spring-boot-starter-data-jpa
usaria ospring-boot-starter
configurado no mesmo arquivo, que excluilogging
(contémlogback
)fonte
mvn dependency:tree
. É muito útil ...Versão Sbt:
Anexar
exclude("org.slf4j", "slf4j-log4j12")
à dependência que inclui transitivamenteslf4j-log4j12
. Por exemplo, ao usar o Spark com o Log4j 2.6:fonte
Eu resolvi excluindo este: spring-boot-starter-log4j2
fonte
Eu apenas ignorei / removi esse arquivo jar.
fonte
Basta usar apenas a dependência necessária, não todas :))). Para mim, para o trabalho normal do processo de registro, você precisa dessa dependência, excluir outras pessoas do pom.xml
fonte
Esse problema ocorre porque a classe StaticLoggerBinder.class pertence a dois jars diferentes. essa classe faz referência a logback-classic-1.2.3.jar e a mesma classe também faz referência a log4j-slf4j-impl-2.10.0.jar. ambos de jar no caminho de classe. Portanto, há conflito entre eles. Esse é o motivo pelo qual o arquivo de log não é gerado, apesar do arquivo log4j2.xml no caminho de classe [src / main / resource].
Como selecionamos um dos jar, recomendo usar o arquivo log4j-slf4j-impl-2.10.0.jar e excluir o arquivo logback-classic-1.2.3.jar. Solução: abra o arquivo pom e visualize a dependência Hierarchy [eclipse] ou execute o
comando mvn dependency: tree para descobrir a árvore de dependência e a origem da dependência que faz o download da dependência. encontre a dependência conflitante e exclua-a. Para o aplicativo Springboot, tente isso.
fonte
... org.codehaus.mojo cobertura-maven-plugin 2.7 teste ch.qos.logback logback-classic tools com.sun ...
Eu consertei com isso
... org.codehaus.mojo cobertura-maven-plugin 2.7 teste ch.qos.logback logback-classic tools com.sun ...
fonte
Para mim, acabou sendo um problema do Eclipse / Maven após a mudança do log4j para o logback. Dê uma olhada no seu
.classpath
arquivo e procure a string"log4j"
.No meu caso, eu tinha o seguinte lá:
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.7.1/slf4j-log4j12-1.7.1.jar"/> <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.17/log4j-1.2.17.jar" />
A remoção dessas entradas do arquivo (ou você pode regenerá-lo) corrigiu o problema.
fonte
Para mim, a resposta foi forçar uma reconstrução do Maven. No Eclipse:
fonte
Eu tive o mesmo problema. No meu pom.xml eu tinha ambos
Quando eu excluí a dependência do spring-boot-starter-web, o problema foi resolvido.
fonte
A combinação
<scope>provided</scope>
e<exclusions>
não funcionou para mim.Eu tive que usar isso:
Onde
empty.jar
está um arquivo jar com literalmente nada nele.fonte
Parece remover o diretório .m2 e:
mvn install -DskipTests -T 4
resolveu esse problema para mim.fonte