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

171,107

Solution 1

I can also confirm this error.

Workaround: is to use external maven inside m2eclipse, instead of it's embedded maven.

That is done in three steps:

1 Install maven on local machine (the test-machine was 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 Default locale: de_DE, platform encoding: UTF-8 OS name: "linux" version: "2.6.35-32-generic" arch: "amd64" Family: "unix"

2 Run maven externally link how to run maven from 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 inside m2eclipse: switch from embedded maven to local maven

  • find out where local maven home installation dir is (mvn --version, or google for your MAVEN_HOME, for me this helped me that is /usr/share/maven2 )
  • in eclipse Menu->Window->Preferences->Maven->Installation-> enter that string. Then you should have switched to your new external maven.
  • then run your Project as e.g. "maven test".

The error-message should be gone.

Solution 2

There is a documentation in SLf4J site to resolve this. I followed that and added slf4j-simple-1.6.1.jar to my aplication along with slf4j-api-1.6.1.jar which i already had.This solved my problem

slf4j

Solution 3

If you are using Gradle add this:

dependencies { 
... 
compile "org.slf4j:slf4j-simple:1.7.9" 
... 
}

Solution 4

Had similar error with the same result with Gradle and was able to solve it by following:

//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'

Out-commented line is the one which caused the error output. I believe you can transfer this to Maven.

Solution 5

Paste this code to your pom.xml file. It works for me.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>
Share:
171,107
Konstantinos Margaritis
Author by

Konstantinos Margaritis

Updated on December 03, 2021

Comments

  • Konstantinos Margaritis
    Konstantinos Margaritis over 2 years
    • Regarding Eclipse IDE (Indigo, Juno and Kepler (32 and 64 bit versions))
    • Platforms: 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

    General info

    The above error came after updating the m2e to version 1.1. By removing m2e 1.1 and rolling back to m2e 1.0 everything worked fine. I tried to repeat the problem in Windows and Ubuntu and it gave me the exact same error. Numerous configurations of the slf4j-api and logback were tested but none seem to work.

    The error appears in any maven project even without declaring slf4j dependency.

    • New Maven Project--> maven-archetype-quickstart

      and

    • New Maven Project--> Simple project without archetype selection

      result to

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

    Testing enviroments and configurations

    Tested with Eclipse Indigo and Eclipse Juno (32 and 64 bit both) on Mac, 32 bit on Ubuntu and 64 and 32 bit on Windows. Tested fresh installs of Juno Classic, Juno Modelling tools, Kepler Standard, Kepler Modelling Tools and produced the same error.

    The error appears with clean, install, test, deploy, generate-sources, validate , compile , package, integration-test, verify and combinations of the goal clean with the rest goals. It appears also with parameters -e and -X. There was an attempt to delete the m2e repository and download it from scratch but again without success. It should me mentioned that it was tested in 3 different machines and virtual box all the above systems but it produced the same error.

    Tried all different logback configurations (from 1.0.4 to 1.0.13) that resolve the slf4j-api and logback-core dependencies, but all produce the same error:

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

    Tried all different (from 1.6.1 to 1.7.5 ) slf4j-simple configurations.

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

    Tried all different (from 1.6.1 to 1.7.5 ) log4j-over-slf4j configurations.

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

    Tried all different (from 1.6.1 to 1.7.5 ) slf4j-jdk14 configurations.

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

    Tried all different (from 1.6.1 to 1.7.5 ) slf4j-log4j12 configurations.

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

    Tried slf4j-nop 1.7.5 configuration.

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

    Last but not least the logs are saved and printed despite the error.


    Ways to reproduce the error

    • Download Eclipse Juno, Indigo or Kepler 32 or 64 bit (All installations will cause the same error).

    • Right Click on the project->Runs As->clean install (or any other goal mentioned above)

    The first line on the console will be

    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.
    

    P.S. Existing projects will produce the same error after updating the m2e version to 1.1.0.20120530-0009, 1.2.0.20120903-1050, 1.3.0.20130129-0926, 1.4.0.20130601-0317


    Updates

    EDIT

    m2e support site:

    • The above question was posted as a bug in m2e support site and the answer from Igor Fedorenko was that

      There are no immediate plans to suppress this message.

      For viewing the above bug please refer to m2e official support site


    EDIT 2
    • The above error indication is present also to m2e version 1.2.0.20120903-1050


    EDIT 3
    • The above error indication is present also to m2e version 1.3.0.20130129-0926


    EDIT 4
    • The above error indication is present also to m2e version 1.4.0.20130601-0317


    EDIT 5
                                  ***Reported FIXED***
    
    • The above error is reported as fixed for m2e version 1.5.0/Luna M3(Target Milestone). The version is not yet available for download.
    • Luna M3 is scheduled for Nov. 15th.
    • Latest dev build are available here
    • More information about the m2e milestones you can find at the m2e main repository.
  • Konstantinos Margaritis
    Konstantinos Margaritis almost 12 years
    All the versions stated were checked. I didnt declare it there in order to avoid repetition. The tag left empty intentionally. Please see that the above issue was posted as a bug to m2e support site and there is no way to resolve the above error unless is supressed by the m2e developers. I have read the website numerous times and i included all possible libraries that could resolve the issue. Unfortunately none configuration worked because it has to do with m2e rather than the declared dependencies. The above error does not show in maven console or Netbeans.ONLY in Eclipse.
  • Konstantinos Margaritis
    Konstantinos Margaritis almost 12 years
    slf4j-log4j12 is another binding along with slf4j-simple, slf4j-jdk14 and logback-classic. Any of the above dependencies should have resolved the issue with the binding. As i explained earlier the problem is with m2e. Thanks anyway.
  • Konstantinos Margaritis
    Konstantinos Margaritis over 11 years
    I am accepting your answer since it is the only workaround in order to bypass the annoying error. Thank you very much for your analytical answer. :)..
  • stefan.at.wpf
    stefan.at.wpf over 11 years
    hmm I am on Windows and changed to the new external installations, however the error still exists!?
  • stefan.at.wpf
    stefan.at.wpf over 11 years
    sorry, it works. Note that there is an option for the maven runtime (internal/external) on the run configurations. so if you use a saved one, make sure to update it.
  • Konstantinos Margaritis
    Konstantinos Margaritis about 11 years
    @stefan.at.wpf Good to hear that it works. If you want, you can subscribe in the mailing list of the bug and you can get informed in case something changes.
  • biaobiaoqi
    biaobiaoqi over 10 years
    For me, #mvn --version is convenient to show the MAVEN_HOME.
  • slfan
    slfan almost 10 years
    please provide a full answer, not just a link.
  • Konstantinos Margaritis
    Konstantinos Margaritis almost 10 years
    @Prince If you read the question description you can find a part which says "For viewing the above bug please refer to m2e official support site" which points to the url that you have mentioned.
  • Prince
    Prince almost 10 years
    Oops.. My bad. Sincere apologies!
  • Enrique San Martín
    Enrique San Martín over 9 years
    this works, in maven can add: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.X.X</version> </dependency> //Just replace with your version
  • Erum
    Erum about 9 years
    @Mohammed Irfan may i need to add this twojar in libs folder in eclipse ?
  • Rob Wilson
    Rob Wilson over 8 years
    I am using a later version of Maven and had followed the steps above, but this was the answer that caused the issue to go away - thanks :)
  • Felipe Pereira
    Felipe Pereira almost 7 years
    It works here with Gradle !! Can you explain what happen when we add that library ?
  • OJVM
    OJVM about 6 years
    It solves the “org.slf4j.impl.StaticLoggerBinder” error, but now is logging everything, i put log4j.xml and log4j.properties (one at a time) in src/test/resources, now all frameworks in my project are logging tons of messages except my own loggings.
  • Admin
    Admin over 2 years
    As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.