Я сделал консольное приложение для переноса данных из 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();
}
Я пытался найти ответы на похожие вопросы здесь, в Переполнении стека, и ни один из них не помог мне.