Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4J找不到日志记录实现_Java_Log4j - Fatal编程技术网

Java Log4J找不到日志记录实现

Java Log4J找不到日志记录实现,java,log4j,Java,Log4j,我制作了一个控制台应用程序,将数据从Solr迁移到Elastic Search。该应用程序工作正常,只是记录器给我的问题在IntelliJ中运行应用程序时效果良好,但在命令行上编译和运行时效果不佳。 错误消息:Error StatusLogger Log4j2找不到日志实现。请将log4j核心添加到类路径。使用SimpleLogger登录控制台… 这是我用来在命令行java-cp analytics.jar org.example.App上运行的命令 这些是我的pom.xml文件中的依赖项: &

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

错误消息:
Error StatusLogger Log4j2找不到日志实现。请将log4j核心添加到类路径。使用SimpleLogger登录控制台…

这是我用来在命令行
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>
以及我如何实例化记录器:

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();
}

我一直在尝试回答有关堆栈溢出的类似问题,但没有一个对我有效。

我就是这样解决的:

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

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

错误告诉您需要将
log4j-core
添加到类路径中。如果将
log4j core.jar
添加到
-cp
命令中,就会出现这种情况,比如
-cp analytics.jar/path/to/log4j core.jar
?@blurfus这不起作用=/当您在IntelliJ中运行它时-打开的终端/命令行显示它使用的整个类路径。。。确保您自己也使用了类似的命令。这不是我建议的吗?@blurfus确实如此,我只是需要将文件放在
java -cp "analytics.jar;log4j-core-2.11.1.jar" org.example.App