web-dev-qa-db-fra.com

LoggerFactory n'est pas un LogbackContext Logback mais Logback est sur le chemin de classe

Je pense qu'un module de spring-boot-starter-security est en conflit avec log4j, mais je ne sais pas lequel.

ma dépendance gradle est la suivante:

compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.boot:spring-boot-starter-security"){
    exclude module: "spring-boot-starter-logging"
}

compile "org.Apache.logging.log4j:log4j-api"
compile "org.Apache.logging.log4j:log4j-core"
compile "org.Apache.logging.log4j:log4j-slf4j-impl"
compile('org.Apache.poi:poi:3.10.1')
compile('org.Apache.poi:poi-ooxml:3.10.1')
testCompile("junit:junit")
16
newbie

j'ai découvert

compile("org.springframework.boot:spring-boot-starter-security"){
    exclude module: "spring-boot-starter-logging"
    exclude module: "logback-classic"
}
compile("org.springframework.boot:spring-boot-starter-thymeleaf"){
    exclude module: "logback-classic"
}
11
newbie

Même solution pour maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <version>1.5.1.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>
15
ufukomer

Utilisation de IDEA "Afficher les dépendances" ou mvn dependency:tree -Dverbose pour trouver tous les fichiers jar logback-classic et les exclure.

4
Robin Wang

Pour moi, ce problème est apparu uniquement lors de l'exécution du plugin maven-surefire. En quelque sorte Logback est là sur le chemin d'accès aux classes, même s'il n'est pas ajouté aux dépendances du projet. J'ai ajouté un tel correctif:

<plugin>
     <groupId>org.Apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>${maven-surefire-plugin.version}</version>
     <configuration>
        <systemPropertyVariables>
            <org.springframework.boot.logging.LoggingSystem>
                org.springframework.boot.logging.log4j2.Log4J2LoggingSystem
            </org.springframework.boot.logging.LoggingSystem>
        </systemPropertyVariables>
    </configuration>
</plugin>

Vous pouvez aussi utiliser

mvn clean install -Dorg.springframework.boot.logging.LoggingSystem=org.springframework.boot.logging.log4j2.Log4J2LoggingSystem
0
michals