java-非静态方法';getLogger';无法从静态上下文引用

java-非静态方法';getLogger';无法从静态上下文引用,java,logging,Java,Logging,我试图使用log4j2在Java中创建一个简单的日志应用程序 这就是它的样子: package com.company; import java.io.IOException; import java.util.logging.LogManager; import java.util.logging.Logger; public class Main { private static final Logger logger = LogManager.getLogg

我试图使用
log4j2
在Java中创建一个简单的日志应用程序

这就是它的样子:

package com.company;

import java.io.IOException;

import java.util.logging.LogManager;
import java.util.logging.Logger;


    public class Main {

       private static final Logger logger = LogManager.getLogger(Main.class);

        public static void main(String[] args) throws IOException {

            String message = "Hello there!";
            System.out.println(message);
            logger.info(message);

        }
    }
getLogger
声称:

 Non-static method 'getLogger' cannot be referenced from a static context
我已经研究了这个论坛上的各种主题,但它们似乎都不起作用。他们似乎以与我上面相同的方式声明记录器


我在这里做错了什么?

如果您使用的是
log4j2
,那么您导入了错误的
LogManager
Logger
。你应该有这个:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
您应该查看以下文档:

编辑:Maven 根据文档,您的
pom.xml
中应该有以下依赖项:

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.1</version>
  </dependency>
</dependencies>

org.apache.logging.log4j
log4japi
2.11.1
org.apache.logging.log4j
log4j型芯
2.11.1

是的,您导入了错误的记录器,应该如下所示

import org.apache.logging.log4j.LogManager;

导入org.apache.logging.log4j.Logger
请将
import
语句添加到代码中。首先要
getLogMananger()
获取实例<代码>getLogger不是静态的。参数必须是
字符串
。所以我猜你没有使用正确的类
Logger
log4j
应该是您想要的(接受
class
参数),您应该使用
Logger.getLogger(Main.class)
@AleksandarDimitrov它似乎无法识别
.getLogger
方法您没有使用log4j2,您使用的是“java.util.logging”好的,它现在似乎可以工作了。奇怪的是,当我在代码上按Alt+Enter时,它并没有告诉我导入正确的类。我在哪里下载API的JAR文件?你应该考虑使用Maven或Gradle来进行依赖管理。但是您也可以在这里下载libs:因为很明显,我将jar导入到我的类路径中,它仍然在线程“main”中显示
Exceptionjava.lang.NoClassDefFoundError:org/apache/logging/log4j/message/ParameterVisitable
我确实使用Maven导入依赖项,但它似乎给出了上述错误。在导入线程“main”java.lang.NoClassDefFoundError:org/apache/logging/log4j/message/ParameterVisitable中的正确异常后,我仍然得到一个错误