我正在尝试编写一个简单的 log4j2 日志消息。
代码如下所示:
package com.company;
import java.io.IOException;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class Main {
private static final Logger logger = LogManager.getLogger(Main.class);
public static void main(String[] args) throws IOException {
String message = "Hello there!";
System.out.println(message);
logger.info(message);
}
}
我的外部库导入 API:
当我运行该程序时,它抛出一个:
java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
我已经导入了相关的jar文件,但不明白为什么还是会出现这个错误。
我做错了什么吗?
最佳答案
您只包含 API 桥 log4j-1.2-api-2.11.1.jar
,而不是实际的库 log4j-api-2.11.1.jar
类路径。它将您的 API 1 调用转换为 API 2 调用。但处理调用的实际库丢失了。
将实际库添加到类路径中,然后删除桥并重写 API 调用(推荐)或保留桥并继续使用 API 1 调用。
关于java-NoClassDefFoundERROR : LogManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53754316/