Il semble que Springboot se configure automatiquement pour utiliser Logback avec Tomcat. Je voudrais désactiver cela et utiliser celui que je fournis dans mon chemin de classe.
Le message d'erreur ci-dessous.
LoggerFactory n'est pas un Logback LoggerContext mais Logback est sur le chemin de classe. Supprimez Logback ou l'implémentation concurrente (classe org.slf4j.impl.SimpleLoggerFactory) L'objet de la classe [org.slf4j.impl.SimpleLoggerFactory] doit être une instance de la classe ch.qos.logback.classic.LoggerContext
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>1.0.1.RELEASE</version>
</parent>
<groupId>com.fe</groupId>
<artifactId>cloudapp</artifactId>
<version>1.0.0</version>
<name>Withinet-PaaS</name>
<description>Develop your web applications in on our infrastructure and we will worry about administration and scalability of your app.</description>
<properties>
<java.version>1.7</java.version>
<guava.version>16.0.1</guava.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.withinet.cloudapp</groupId>
<artifactId>slave</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<version>6.15.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.0.Final</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Hibernate validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- Guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Java EE -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Search -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.8.0</version>
</dependency>
<!-- Security
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spring Boot Maven -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.withinet.cloud.Application</mainClass>
<layout>JAR</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
spring-boot
FOO
la source
la source
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
.Pour ajouter une solution meilleure et plus générique dans Gradle (toutes les instances seront exclues):
Depuis https://docs.gradle.org/current/userguide/dependency_management.html
la source
spring-boot-starter-logging
Pour ajouter une solution dans gradle.
la source
J'ai trouvé que l'exclusion du
spring-boot-starter-logging
module complet n'est pas nécessaire. Il suffit d'exclure leorg.slf4j:slf4j-log4j12
module.L'ajout de ceci à un fichier de construction Gradle résoudra le problème:
Consultez cette autre réponse StackOverflow pour plus de détails.
la source
J'aime ça pour résoudre mon problème
la source
Pour gradle,
Vous pouvez voir cette solution sur: http://www.idanfridman.com/how-to-exclude-libraries-from-dependcies-using-gradle/
Juste besoin d' ajouter
exclude
dansconfigurations
:la source
Recherchez spring-boot-starter-test dans votre pom.xml et modifiez-le comme suit:
Il a corrigé une erreur comme:
la source
Suivre des oeuvres pour moi
la source
Il peut être utile de dire quel est votre enregistreur préféré et ce que vous avez fait pour essayer de l'installer. Quoi qu'il en soit, Spring Boot essaie de travailler avec tout ce qui se trouve dans le chemin de classe, donc si vous ne voulez pas de connexion, supprimez-le du chemin de classe. Il y a des instructions pour log4j dans la documentation , mais la même chose s'appliquerait aux autres systèmes de journalisation pris en charge (tout ce qui concerne slf4j, log4j ou java util).
la source
J'ai résolu mon problème ci-dessous:
la source
Cela a très bien fonctionné pour moi
Mais cela ne fonctionnerait pas pour les utilisateurs de maven . Toutes mes dépendances étaient dans libs.gradle et je ne les voulais pas dans d'autres fichiers. Donc , ce problème a été résolu en ajoutant
exclude module : 'spring-boot-starter-logging
dansspring-boot-starter-data-jpa
,spring-boot-starter-test
et pratiquement tout avec le mot de démarrage.METTRE À JOUR
Mon nouveau projet avait besoin d'une mise à jour, il s'avère que la version
spring-boot-starter-test
1.5 et les versions antérieures ne l'avaient pas étéspring-boot-starter-logging
. 2.0 l'ala source
Dans mon cas, il était seulement nécessaire d'exclure l'
spring-boot-starter-logging
artefact de celui-spring-boot-starter-security
ci.Il s'agit d'un projet Spring Boot 2.2.6.RELEASE nouvellement généré comprenant les dépendances suivantes:
J'ai découvert en courant
mvn dependency:tree
et en cherchantch.qos.logback
.La botte à ressort liée
<dependencies>
à monpom.xml
ressemble à ceci:la source
Ajoutez ceci dans votre build.gradle
la source
Si cette erreur s'est produite dans SpringBoot lorsque vous essayez d'utiliser log4j2, procédez comme suit:
Cette erreur s'est produite car la journalisation remplace les modifications de log4j2. Donc, si vous souhaitez utiliser log4j2, vous devez supprimer la bibliothèque logback et les dépendances.
J'espère que cela aidera quelqu'un.
la source
Méthode correcte pour exclure la journalisation par défaut et configurer log4j pour la journalisation.
Reportez-vous à Spring Logging - How To .
la source
Pour ajouter une exclusion pour la connexion à partir de l'EDI Netbeans
Cliquez avec le bouton droit sur le pot et sélectionnez Exclure la dépendance comme indiqué ci-dessous. Ceci exclut le jar de connexion sur le pom.xml comme ceci;
la source
Dans mon cas ci-dessous, l'exclusion fonctionne !!
la source
L'ajout d'exclusions ne me suffisait pas. J'ai dû fournir un faux pot:
la source
La raison en est que spring boot est livré avec logback comme configuration de journal par défaut, tandis que camel utilise log4j. C'est la raison du conflit. Vous avez deux options, soit supprimer le logback de Spring Boot comme mentionné dans les réponses ci-dessus, soit supprimer log4j de camel.
la source
Ajoutez simplement la configuration logback.xml dans votre chemin de classe et ajoutez toute votre configuration avec l'ajout de root appender. Une fois que le démarrage de Spring a terminé le chargement du bean, il commencera la journalisation en fonction de votre configuration.
la source