Log4J не может найти реализацию ведения журнала - PullRequest
0 голосов
/ 20 января 2020

Я сделал консольное приложение для переноса данных из Solr в Elasti c Поиск. Приложение работает нормально, только регистратор доставляет мне проблемы. Работает нормально, когда я запускаю приложение в IntelliJ, но не работает, когда я компилирую и запускаю из командной строки.

Сообщение об ошибке: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

This это команда, которую я использую для запуска в командной строке java -cp analytics.jar org.example.App.

Это зависимости из моего pom.xml файла:

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

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.5</version>
</dependency>

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

Мой импорт:

import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;

И как я создаю экземпляр логгера:

System.setProperty("log4j.configurationFile",appPath.concat("/log4j.properties"));
log = Logger.getLogger(App.class.getName());


try {
    Properties props = new Properties();
    props.load(new FileInputStream(appPath.concat("/log4j.properties")));
    PropertyConfigurator.configure(props);
} catch (IOException e) {
    e.printStackTrace();
}

Я пытался найти ответы на похожие вопросы здесь, в Переполнении стека, и ни один из них не помог мне.

1 Ответ

0 голосов
/ 21 января 2020

Вот как я это решил:

java -cp "analytics.jar;log4j-core-2.11.1.jar" org.example.App

log4j-core-2.11.1.jar находится в той же папке analytics.jar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...