Log4J找不到日志记录实现

时间:2020-01-20 19:54:57

标签: java log4j

我制作了一个控制台应用程序,用于将数据从Solr迁移到Elastic Search。该应用程序运行正常,只是记录器给我带来了问题。 当我在IntelliJ中运行应用程序时,效果很好,但是当我在命令行上编译并运行时,效果却不佳。

错误消息:ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

这是我用于在命令行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();
}

我一直在尝试从Stack Overflow获得类似问题的答案,但是没有一个对我有用。

1 个答案:

答案 0 :(得分:0)

这是我解决的方法:

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

log4j-core-2.11.1.jar位于analytics.jar的同一文件夹中