java - Log4J 找不到日志记录实现

标签 java log4j

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

错误消息:错误 StatusLogger Log4j2 找不到日志记录实现。请将 log4j-core 添加到类路径中。使用 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>

我的导入:

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 上尝试类似问题的答案,但没有一个对我有用。

最佳答案

这就是我解决这个问题的方法:

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

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

关于java - Log4J 找不到日志记录实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59830049/

相关文章:

java - 如何在 Eclipse 中配置 pivotal tc 以使用 log4j 配置而不是它自己的 loggingmanager?

tomcat - 在 Apache Tomcat 中使用 Log4j 进行 Mule 日志记录

java - 在 PUB/SUB 模型中消费来自 RabbitMQ 的消息

java - 使用 Java 访问 JSONArray 中项目的成员

java - 在 onTouch (Android) 上获取颜色(像素)信息

java - 如何将代码转换为泛型方法 - Object.class

configuration - 我可以在 log4j 配置中通过引用指定布局吗?

java - 如何获取日志文件中的 hibernate 日志

java - JavaFX 中的 ChangeListener : how can I make these generics parameters less ugly?

java - JGroups 未找到或加载主类