LoggerFactor.getLogger cannot be resolved to a type

29,699

Solution 1

On the tutorial page you link to, there is the following note:

slf4j-log4j12-1.7.6.jar

Binding for log4j version 1.2, a widely used logging framework. You also need to place log4j.jar on your class path.

Did you include log4j.jar?

Solution 2

My problem was solved after the inclusion of

slf4j-api-1.7.7.jar and slf4j-simple-1.7.7.jar

on classpath.

Solution 3

For me, when I added the Maven dependency below, it worked:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Share:
29,699
smuggledPancakes
Author by

smuggledPancakes

Ship it

Updated on July 05, 2022

Comments

  • smuggledPancakes
    smuggledPancakes almost 2 years

    I setup a basic Java program, I am following this tutorial and have this exact code:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class HelloWorld {
      public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(HelloWorld.class);
        logger.info("Hello World");
      }
    }
    

    I have the jars slf4j-api-1.7.5.jar and slf4j-log4j12-1.7.5 jar on my build path. I do not understand what gives, the getLogger method exists in the LoggerFactory class which I can F3 (source code look-up) to. I Googled about this and appear to be the only dope with this problem. Any ideas?

    Here is my .classpath for Eclipse:

    <xml version="1.0" encoding="UTF-8"?>
    <classpath>
       <classpathentry kind="src" path="src"/>
       <classpathentry kind="con" path="org.eclipse.jdit..../>
       <classpathentry kind="lib" path="/home/Desktop/slf4j-api-1.7.5.jar" sourcepath="/home/Desktop/slf4j-api-1.7.5.jar"/>
       <classpathentry kind="lib" path="slf4j-log4j12-1.7.5.jar"/>
       <classpathentry kind="lib" path="log4j-1.2.17.jar"/>
       <classpathentry kind="output" path="bin"/>
    </classpath>
    
  • smuggledPancakes
    smuggledPancakes about 10 years
    I added log4j.jar to my build path but there is still no change. I do not have access to the 1.7.6 slf4j jars on my development box. Should that 0.0.1 difference be causing this error? I can see the method call in my jar's source code.
  • sheltem
    sheltem about 10 years
    Doesn't matter which concrete logging framework is to be used in the end, Logger and LoggerFactory are classes that reside in the slf4j-api. A missing binding or logging implementation would lead to a completely different error.
  • smuggledPancakes
    smuggledPancakes about 10 years
    I had a spelling error on my path, sorry about this mess