Java: на нестатический метод getLogger нельзя ссылаться из статического контекста - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь создать простое приложение для ведения журналов в Java, используя log4j2.

Вот как это выглядит:

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

Я просматривал различные темы на этом форумено ни один из них, казалось, не работал.Казалось, они объявили регистратор так же, как я делал выше.

Что я здесь не так делаю?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Да, вы импортировали не тот логгер, он должен быть ниже

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Вот рабочий пример

import java.io.IOException;

import org.apache.log4j.LogManager;
import org.apache.log4j.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);

  }


}

И если вы используете неправильную зависимость maven, используйте приведенную ниже

<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>
0 голосов
/ 12 декабря 2018

Если вы используете log4j2, значит, вы импортировали не те LogManager и Logger.Вы должны иметь это:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Вы должны взглянуть на документацию: https://logging.apache.org/log4j/2.x/manual/api.html

РЕДАКТИРОВАТЬ: Maven

Согласно документации Использование Log4jв вашей сборке Apache 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...