伐木厂,getLogger无法解析为类型

8ljdwjyq  于 2022-09-18  发布在  Java
关注(0)|答案(5)|浏览(134)

我设置了一个基本的Java程序。我遵循这个tutorial,并有这个确切的代码:

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");
  }
}

我的构建路径上有两个jar:slf4j-api-1.7.5.jar和slf4j-log4j12-1.5.5 jar。我不明白它给出了什么,getLogger方法存在于LoggerFactory类中,我可以使用F3(源代码查找)进行查找。我在谷歌上搜索了这一点,似乎是唯一一个了解这个问题的人。有什么想法吗?
以下是我的Eclipse.classpath:

<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>
ssgvzors

ssgvzors1#

在链接到的教程页面上,有以下注解:

slf4j-log4j12-1.7.6.jar

log4j版本1.2的绑定,这是一个广泛使用的日志框架。您还需要放置log4j。jar在类路径上。
您是否包括log4j.jar?

deyfvvtc

deyfvvtc2#

我的问题在包含

slf4j-api-1.7.7.jar和****

在类路径上。

pqwbnv8z

pqwbnv8z3#

对我来说,当我在下面添加Maven依赖时,它起作用了:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
yeotifhr

yeotifhr4#

您始终可以静态使用记录器,而不是使用loggerfactory,并在每次需要时创建一个示例:

final static Logger logger = Logger.getLogger(HelloWorld.class);

根据这个SO答案,使用这两种方法的开销似乎都不大:
What's the overhead of creating a SLF4J loggers in static vs. non-static contexts?

pb3s4cty

pb3s4cty5#

我用

import org.apache.log4j.Logger;

而不是

import java.util.logging.Logger;

相关问题