SLF4J: N'a pas réussi à charger class "org.slf4j.impl.StaticLoggerBinder". erreur

  • Concernant Eclipse IDE ( Indigo , Juno et Kepler (versions 32 et 64 bits))
  • Plates-Formes : Windows , Ubuntu , Mac
  • M2E version : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,

    1.4.0.20130601-0317

Informations générales

l'erreur ci-dessus est survenue après la mise à jour du m2e vers la version 1.1. en enlevant m2e 1.1 et en retournant à m2e 1.0 tout fonctionnait bien. j'ai essayé de répéter le problème dans Windows et Ubuntu et il m'a donné la même erreur. De nombreuses configurations de l'api slf4j et du logback ont été testées, mais aucune ne semble fonctionner.

l'erreur apparaît dans n'importe quel projet maven même sans déclarer la dépendance slf4j .

  • nouveau projet Maven--> maven-archetype-quickstart

    et

  • Nouveau Projet Maven--> projet Simple, sans archétype de sélection

    résultat à

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

Testing environments and configurations

Testé avec Eclipse Indigo et Eclipse Juno (32 et 64 bits les deux) sur Mac, 32 bits sur Ubuntu et 64 et 32 bits sur Windows. Testé les nouvelles installations de Juno Classique , Juno outils de Modélisation , Kepler Standard , Kepler Outils de Modélisation et produit le même message d'erreur.

L'erreur s'affiche avec propre , installer , test , déployer , generate-sources , valider , compiler , package , integration-test , vérifier et les combinaisons de l'objectif propre avec le reste des objectifs. Il apparaît également avec les paramètres -e et -X . Il y a eu une tentative de supprimer le dépôt m2e et de le télécharger à partir de zéro, mais encore une fois sans succès. Il me fallait mentionner qu'il a été testé sur 3 machines différentes. et la boîte virtuelle tous les systèmes ci-dessus, mais il a produit la même erreur.

a essayé toutes les différentes configurations logback (de 1.0.4 à 1.0.13) qui résolvent les dépendances slf4j-api et logback-core , mais toutes produisent la même erreur:

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>

essayé tous différents (de 1.6.1 à 1.7.5) slf4j-simple configurations.

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

essayé toutes les configurations différentes (de 1.6.1 à 1.7.5) log4j-over-slf4j .

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

essayé toutes les configurations différentes (de 1.6.1 à 1.7.5) slf4j-jdk14 .

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

essayé toutes les configurations différentes (de 1.6.1 à 1.7.5) slf4j-log4j12 .

<dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
     <version></version>
     <scope>compile</scope>
</dependency>

essayé slf4j-nop 1.7.5 configuration .

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>1.7.5</version>
  <scope>compile</scope>
</dependency>

le Dernier mais pas le moins les journaux sont enregistrés et imprimés en dépit de l'erreur.


façons de reproduire l'erreur

  • Téléchargement Eclipse Juno, de l'Indigo ou Kepler 32 ou 64 bits (Toutes les installations cause de la même erreur).

    • Installer m2e - Intégration de Maven pour Eclipse

      • Juno - http://download.eclipse.org/releases/juno
      • Kepler - http://download.eclipse.org/releases/kepler
      • Indigo - http://download.eclipse.org/technology/m2e/releases/ ( actuellement non disponible )

      ou

    • mettez à jour votre version m2e pour 1.1.0.20120530-0009 , ou 1.2.0.20120903-1050 , ou 1.3.0.20130129-0926 , ou 1.4.0.20130601-0317 )


    • sélectionner Fichier->Nouveau->Autres->Maven Project->Cliquez Sur Suivant->Sélectionnez

      maven-archetype-quickstart à partir du catalogue->Terminer

      ou

    • sélectionner Fichier- > Nouveau->autre - > projet Maven - > cliquer sur Suivant - > sélectionner Créer un projet simple (sauter la sélection des archétypes) - > compléter L'information sur les artefacts - > terminer "1519560920

  • clic droit sur le projet- > exécute Comme->clean install (ou tout autre objectif mentionné ci-dessus)

La première ligne sur la console sera

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.

les projets existants produiront la même erreur après mise à jour de la version m2e à 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317


mises à jour

MODIFIER

m2e site de support:

  • la question ci-dessus a été postée comme un bug dans le site de soutien m2e et la réponse D'Igor Fedorenko était que

    il n'y a pas de plan immédiat pour supprimez ce message.

    pour visualiser le bogue ci-dessus, veuillez vous référer à M2E site d'appui officiel


Modifier 2
  • l'indication d'erreur ci-dessus est présente aussi à M2E version 1.2.0.20120903-1050


Modifier 3
  • l'indication d'erreur ci-dessus est présente aussi à M2E version 1.3.0.20130129-0926


modifier 4
  • l'indication d'erreur ci-dessus est présente aussi à M2E version 1.4.0.20130601-0317


EDIT 5
                              ***Reported FIXED***
  • L'erreur ci-dessus est rapporté que fixe pour m2e version 1.5.0/Luna M3 ( Date Butoir ). La version n'est pas encore disponible au téléchargement.
  • Luna M3 is prévu pour Nov. 15ème .
  • dernière version disponible ici
  • pour en savoir plus sur les jalons m2e, consultez le dépôt principal m2e .
104
demandé sur Konstantinos Margaritis 2012-08-11 22:44:40

9 réponses

je peux également confirmer cette erreur.

contournement: est d'utiliser Maven externe à l'intérieur de m2eclipse, au lieu de son maven intégré.

qui est fait dans trois étapes:

1 installez maven sur la machine locale (la machine d'essai était Ubuntu 10.10)

mvn -- version

Apache Maven 2.2.1 (rdebian-4) Java version: 1.6.0_20 Java home: /usr/lib/jvm/java-6-openjdk/jre paramètres régionaux par Défaut: de_DE, plate-forme encoding: UTF-8 OS nom: "linux" version: "2.6.35-32-generic" arch: "amd64" famille: "unix"

2 Exécuter maven externe lien comment faire pour exécuter maven de la console

> cd path-to-pom.xml
> mvn test
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Simple
    [INFO]    task-segment: [test]
    [INFO] ------------------------------------------------------------------------
    [...]
    [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running net.tverrbjelke.experiment.MainAppTest
    Hello World
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec

    Results :

    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [...]

3 Intérieur m2eclipse: commutateur de embedded maven de maven local

  • savoir où maven local d'installation à domicile dir est ( mvn --version , ou google pour votre MAVEN_HOME , pour moi cela m'a aidé qui est /usr/share/maven2 )
  • dans le Menu eclipse->Window->Preferences->Maven->Installation-> entrez cette chaîne. Alors vous auriez dû passer à votre nouveau maven externe.
  • alors lancez votre Projet comme par exemple"Maven test".

le message d'erreur devrait avoir disparu.

73
répondu tverrbjelke 2018-05-26 10:48:11

il y a une documentation sur le site de SLf4J pour résoudre ce problème. J'ai suivi et j'ai ajouté slf4j-simple-1.6.1.jar à mon application avec slf4j-api-1.6.1.jar qui j'avais déjà.Cela a résolu mon problème

slf4j

22
répondu Mohammed Irfan Tirupattur 2014-05-23 10:06:03

si vous utilisez Gradle, ajoutez ceci:

dependencies { 
... 
compile "org.slf4j:slf4j-simple:1.7.9" 
... 
}
7
répondu Dias 2016-12-23 04:56:51

avait une erreur similaire avec le même résultat avec Gradle et a pu le résoudre en suivant:

//compile 'org.slf4j:slf4j-api:1.7.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'

la ligne commentée est celle qui a causé la sortie d'erreur. Je crois que vous pouvez transférer ceci à Maven.

4
répondu tomasb 2014-12-06 04:45:42

vous n'avez pas spécifié la version dans votre fichier de dépendance maven peut être la raison pour laquelle il ne choisit pas le dernier jar

ainsi que vous avez besoin d'un autre deppendency avec slf4j-log4j12 artéfact id.

les Inclure dans votre pom fichier

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

faites-moi savoir si l'erreur n'est pas encore résolue

Je vous recommande aussi de voir ce lien

2
répondu khan 2012-08-14 11:07:09

collez ce code sur votre pom.fichier xml. Il fonctionne pour moi.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>
2
répondu james25 2017-09-27 10:00:51

avait été sur l'examen de la question ayant fait surface. Croyez que ce sera une bonne lecture pour les autres qui viennent ici avec la même question:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064

1
répondu Prince 2014-07-30 05:41:50

j'ai eu le même problème pour mon application de Botte de printemps sur Eclipse Luna. Je pourrais le résoudre en ajoutant manuellement une entrée dans mon projet .classepath

<classpathentry sourcepath="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/3150039466ad03e6ef1c7ec1c2cbb0d96710cf64/slf4j-simple-1.7.7-sources.jar" kind="lib" path="C:/Users/<username>/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.7/8095d0b9f7e0a9cd79a663c740e0f8fb31d0e2c8/slf4j-simple-1.7.7.jar"/>

l'Idée est de suivre ce solution. Mais la mise en œuvre dépend de chaque cas. Un moyen de fixation est celui que j'ai utilisé ci-dessus.

Espérons que cette aide.

1
répondu Vipul Agarwal 2015-08-05 10:44:08

Ce n'est pas un message d'erreur mais un avertissement. Il est très clairement expliqué dans leur site web comme :

ce message d'avertissement, c.-à-d. pas d'erreur, est signalé lorsqu'aucun fournisseur SLF4J n'a pu être trouvé sur le chemin de classe. Placer un (et un) de 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. Notez que ces fournisseurs doivent cibler slf4j-api 1.8 ou plus tard.

en l'absence d'un fournisseur, SLF4J sera par défaut à un fournisseur d'Enregistreur sans opération (NOP).

https://www.slf4j.org/codes.html#StaticLoggerBinder

0
répondu avenugopalan 2018-05-16 19:53:29