SLF4J: Impossible de charger la classe «org.slf4j.impl.StaticLoggerBinder»

Mon application doit être déployée sur tcServer et WebSphere 6.1. Cette application utilise ehCache et nécessite donc slf4j en tant que dépendance. En conséquence, j’ai ajouté le fichier jar slf4j-api.jar (1.6) à mon ensemble de fichiers war.

L’application fonctionne correctement dans tcServer à l’exception de l’erreur suivante:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 

Cependant, lorsque je déploie dans WebSphere, j’obtiens une java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

J’ai vérifié les chemins de classe des deux serveurs d’applications et il n’y a pas d’autre jar de slf4j.

Est-ce que quelqu’un a des idées sur ce qui peut arriver ici?

    J’ai eu le même problème avec WebSphere 6.1. Comme l’a souligné Ceki, WebSphere utilisait des tonnes de bocaux et l’un d’eux montrait une ancienne version de slf4j.

    La restauration de No-Op se produit uniquement avec slf4j -1.6+, donc tout ce qui est plus ancien lève une exception et arrête votre déploiement.

    Il existe une documentation sur le site SLf4J qui résout ce problème. J’ai suivi cela et ajouté slf4j-simple-1.6.1.jar à mon application avec slf4j-api-1.6.1.jar que j’avais déjà.

    Cela a résolu mon problème. J’espère que cela aidera les autres qui ont ce problème.

    Ceci est pour ceux qui sont venus ici de recherche Google.

    Si vous utilisez maven, ajoutez simplement ce qui suit

       org.slf4j slf4j-api 1.7.5   org.slf4j slf4j-log4j12 1.7.5  

    Ou

       org.slf4j slf4j-api 1.7.5   org.slf4j slf4j-simple 1.6.4  

    Vous devez append le fichier jar suivant dans votre slf4j-simple-1.6.2.jar : slf4j-simple-1.6.2.jar . Si vous ne l’avez pas, téléchargez-le. Veuillez vous référer à http://www.slf4j.org/codes.html#multiple_bindings

    Ajoutez simplement ceci à votre pom.xml :

      org.slf4j slf4j-simple 1.7.21  

    mettre le fichier slf4j-log4j12-1.6.4.jar dans le classpath fera l’affaire.

    Parfois, nous devrions voir la note de l’avertissement, par exemple. SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. .

    Vous pouvez rechercher la raison pour laquelle cet avertissement vient.
    Ajouter le jar de *slf4j-nop.jar , slf4j-simple.jar , slf4j-log4j12.jar , slf4j-jdk14.jar ou logback-classic.jar* au chemin de la classe devrait résoudre le problème.

    comstack "org.slf4j:slf4j-api:1.6.1" comstack "org.slf4j:slf4j-simple:1.6.1"

    Par exemple, ajoutez le code ci-dessus à votre build.gradle ou le code correspondant à pom.xml pour le projet pom.xml .

    Je faisais face à la même erreur. J’ai configuré slf4j-api, slf4j-log4j12 et log4j dans mon développement local. Toute la configuration était correcte, mais la dépendance slf4j-log4j12 que j’ai copiée de mvnrepository avait une scope de test test . Quand j’ai enlevé cela, tout va bien.

    Quelques fois, des erreurs stupides nous brisent la tête;)

    Si vous utilisez maven pour la gestion des dépendances, vous pouvez simplement append la dépendance suivante dans pom.xml

      org.slf4j slf4j-log4j12 1.5.6  

    Pour les utilisateurs non-Maven Il suffit de télécharger la bibliothèque et de la placer dans le classpath de votre projet.

    Ici vous pouvez voir les détails: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

    SLF4j est une abstraction pour différents frameworks de journalisation . Ainsi, mis à part avoir slf4j, vous devez inclure votre structure de journalisation comme log4j ou logback (etc) dans votre classpath.
    Pour avoir une idée, référez-vous à la première étape sur http://logback.qos.ch/manual/introduction.html

    Quelques réponses recommandent d’append la dépendance slf4j-simple à votre fichier maven pom. Vous voudrez peut-être vérifier la version la plus récente.

    Sur https://mvnrepository.com/artifact/org.slf4j/slf4j-simple, vous trouverez la dernière version de la liaison simple SLF4J. Choisissez celui qui vous convient le mieux (toujours 1.7.25 de 2017-03 est la version stable à partir de 2018-02) et incluez-le à votre pom.xml.

    Version bêta de mars 2018

       org.slf4j slf4j-simple 1.8.0-beta2  

    Version stable

       org.slf4j slf4j-simple 1.7.25  

    Slf4j est une façade pour les structures de journalisation sous-jacentes telles que log4j, logback, java.util.logging.

    Pour se connecter aux frameworks sous-jacents, slf4j utilise une liaison.

    • log4j – slf4j-log4j12-1.7.21.jar
    • java.util.logging – slf4j-jdk14-1.7.21.jar etc

    L’erreur ci-dessus est renvoyée si le pot de liaison est manquant. Vous pouvez télécharger ce fichier et l’append à classpath.

    Pour maven dépendance,

      org.slf4j slf4j-log4j12 1.7.21  

    Cette dépendance, en plus de slf4j-log4j12-1.7.21.jar, extraira slf4j-api-1.7.21.jar et log4j-1.2.17.jar dans votre projet.

    Référence: http://www.slf4j.org/manual.html

    Dans le cas Websphere, vous avez une ancienne version de slf4j-api.jar, 1.4.x. ou 1.5.x qui traîne quelque part. Le comportement que vous observez sur tcServer, qui est le basculement sur NOP, se produit sur les versions slf4j 1.6.0 et ultérieures. Assurez-vous que vous utilisez slf4j-api-1.6.x.jar sur toutes les plates-formes et qu’aucune version antérieure de slf4j-api n’est placée sur le chemin d’access aux classes.

    Je suis entré dans ce problème quand je reçois l’erreur suivante:

     SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 

    quand j’utilisais slf4j-api-1.7.5.jar dans mes libs .

    En dépit de ce que j’ai essayé avec les bocaux complémentaires proposés, comme slf4j-log4j12-1.7.5.jar , slf4j-simple-1.7.5 le message d’erreur persiste. Le problème a finalement été résolu lorsque j’ai ajouté slf4j-jdk14-1.7.5.jar aux slf4j-jdk14-1.7.5.jar Java.

    Obtenez le package slf4j complet à l’ adresse http://www.slf4j.org/download.html

    Veuillez append les dépendances suivantes à pom pour résoudre ce problème.

      org.slf4j slf4j-simple 1.7.25 test   org.slf4j slf4j-api 1.7.25  

    Je travaille dans un projet Struts2 + Spring. Donc, il a besoin d’une dépendance slf4j-api-1.7.5.jar .

    Si je lance le projet, je reçois une erreur comme

    Impossible de charger la classe “org.slf4j.impl.StaticLoggerBinder”

    J’ai résolu mon problème en ajoutant le slf4j-log4j12-1.7.5.jar .

    Alors, ajoutez ce pot dans votre projet pour résoudre le problème.

    J’étais confronté au problème similaire avec les applications Spring-boot-2 avec la bibliothèque Java 9.

    L’ajout de la dépendance suivante dans mon fichier pom.xml a résolu le problème pour moi:

       com.googlecode.slf4j-maven-plugin-log slf4j-maven-plugin-log 1.0.0  

    Selon la documentation officielle du SLF4J

    Impossible de charger la classe org.slf4j.impl.StaticLoggerBinder

    Ce message d’avertissement est signalé lorsque la classe org.slf4j.impl.StaticLoggerBinder n’a pas pu être chargée en mémoire. Cela se produit lorsqu’aucune liaison SLF4J appropriée n’a pu être trouvée sur le chemin de classe. Placer un (et un seul) slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar ou logback-classic.jar sur le chemin de classe devrait résoudre le problème.

    Ajoutez simplement ce fichier avec slf4j api.jar à votre classpath pour faire avancer les choses. Bonne chance

    J’ai ajouté cette dépendance pour résoudre ce problème:

     https://mvnrepository.com/artifact/org.slf4j/slf4j-simple/1.7.25 

    En guise d’alternative aux solutions d’inclusion en pot et de maven pur, vous pouvez l’inclure de maven avec gradle.

    Exemple pour la version 1.7.25

     // https://mvnrepository.com/artifact/org.slf4j/slf4j-simple api group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25' 

    Mettez ceci dans les dépendances de votre fichier build.gradle .

    Je sais que ce post est un peu vieux, mais au cas où quelqu’un d’autre se heurterait à ce problème:

    Ajoutez slf4j-jdk14-XXXjar à votre CLASSPATH (où XXX correspond au numéro de version – par exemple slf4j-jdk14-1.7.5.jar).

    HTH Peter

    J’utilise Jena et j’ajoute la dépendance à pom.xml

      ch.qos.logback logback-classic 1.0.13  

    J’essaie d’append slf4j-simple mais il ne fait que disparaître le “SLF4J: Impossible de charger la classe” org.slf4j.impl.StaticLoggerBinder “erreur mais logback-classic afficher plus d’informations de détail.

    Le document officiel

    Je le résous en ajoutant cette bibliothèque: slf4j-simple-1.7.25.jar Vous pouvez télécharger ceci sur le web officiel https://www.slf4j.org/download.html

    la solution est indiquée sur leur site officiel:

    Impossible de charger la classe org.slf4j.impl.StaticLoggerBinder

    Ce message d’avertissement est signalé lorsque la classe org.slf4j.impl.StaticLoggerBinder n’a pas pu être chargée en mémoire. Cela se produit lorsqu’aucune liaison SLF4J appropriée n’a pu être trouvée sur le chemin de classe. Placer un (et un seul) slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar ou logback-classic.jar sur le chemin de classe devrait résoudre le problème. DEPUIS 1.6.0 A partir de la version 1.6 de SLF4J, en l’absence de liaison, SLF4J utilisera par défaut une implémentation de journalisation sans opération (NOP). Si vous êtes responsable du conditionnement d’une application et que vous ne vous souciez pas de la journalisation, placer slf4j-nop.jar sur le chemin de classe de votre application supprimera ce message d’avertissement. Notez que les composants incorporés tels que les bibliothèques ou les frameworks ne doivent déclarer aucune dépendance sur une liaison SLF4J, mais ne dépendent que de slf4j-api. Lorsqu’une bibliothèque déclare une dépendance à la compilation sur une liaison SLF4J, elle impose cette liaison à l’utilisateur final, annulant ainsi l’objective de SLF4J.

    solution: J’ai ajouté à mon projet en utilisant maven research sur intellij et j’ai choisi le fichier slf4j-jdk14.jar.