J'ouvre ce post après que je n'ai pas pu trouver de solution dans le post: Impossible de charger la classe "org.slf4j.impl.StaticLoggerBinder" error
J'ai également ouvert un projet Maven dans IntelliJ et j'ai obtenu l'erreur suivante après avoir choisi l'option "redéployer" dans le plugin Tomcat7:
SLF4J: Impossible de charger la classe "org.slf4j.impl.StaticLoggerBinder". SLF4J: Mise en œuvre par défaut de l'enregistreur sans opération (NOP) SLF4J: Voir http://www.slf4j.org/codes.html#StaticLoggerBinder pour plus de détails.
Dans le lien ci-joint, il était recommandé d'aller dans Fichier-> Structure du projet -> Artefacts et de rechercher les erreurs. C'est ce que je vois:
J'ai aussi les dépendances suivantes dans le fichier pom.xml:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
Pouvez-vous m'aider s'il vous plaît à trouver l'erreur?
Peut-être y at-il deux problèmes:
Pour reproduire votre erreur, j'ai créé ce mini programme:
package de.so;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DemoSlf4j
{
private static Logger logger = LoggerFactory.getLogger(DemoSlf4j.class);
public static void main(String[] args)
{
logger.error("Start ...");
}
}
avec seulement ces dépendances (identiques à celles que vous avez utilisées) dans pom.xml:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
J'ai ces messages:
SLF4J: Le chemin d'accès aux classes contient plusieurs liaisons SLF4J. SLF4J: Liaison trouvée dans [jar: fichier:/D: /Maven-Repo/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar! /Org/slf4j/impl/StaticLoggerBinder.class ] SLF4J: Liaison trouvée dans [jar: fichier:/D: /Maven-Repo/org/slf4j/slf4j-simple/1.7.21/slf4j-simple-1.7.21.jar!/Org/slf4j/impl/StaticLoggerBinder. class] SLF4J: Voir http://www.slf4j.org/codes.html#multiple_bindings pour une explication. SLF4J: La liaison réelle est de type [org.slf4j.impl.Log4jLoggerFactory] SLF4J: La version demandée 1.5.6 par votre liaison slf4j n'est pas compatible avec [1.6, 1.7] SLF4J: Voir http: //www.slf4j. org/codes.html # version_mismatch pour plus de détails. log4j: WARN Aucun ajout de correcteur n'a été trouvé pour l'enregistreur (de.so.DemoSlf4j). log4j: WARN Veuillez initialiser correctement le système log4j.
Lorsque j'utilise ces dépendances, tout va bien. Regardez les versions!
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
</dependencies>
Si vous utilisez org.slf4j:slf4j-log4j12:1.7.21
au lieu de slf4j-simple
(ce qui est plus probable pour la production), vous obtiendrez:
log4j: WARN Aucun ajout de correcteur n'a été trouvé pour l'enregistreur (de.so.DemoSlf4j). log4j: WARN Veuillez initialiser correctement le système log4j. log4j: WARN Voir http://logging.Apache.org/log4j/1.2/faq.html#noconfig pour plus d'informations.
Alors faites ceci:
Vous rencontrez peut-être un bocal fissuré dans votre projet, vérifiez-le dans les détails du modèle de débogage. Je rencontrais également ce problème. Lorsque je construis avec un modèle de débogage, je vois un avertissement concernant:
/repository/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar
, alors supprimez-le et reconstruisez-le. problème résolu.
Vous fournissez une api de journal et deux implémentations différentes, slf4j-log4j12
et slf4j-simple
. J'ai eu le même problème, mais dans mon cas, il m'a envoyé un message d'erreur me demandant de «supprimer un» du chemin de classe.
Vous pouvez essayer de supprimer slf4j-simple
ou slf4j-log4j12
des dépendances, de nettoyer et de reconstruire le projet.