java-NoClassDefFoundERROR : LogManager

标签 java logging

我正在尝试编写一个简单的 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:

Screenshot

当我运行该程序时,它抛出一个:

 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/

相关文章:

java - fragment 中带有 Gridview 的 Android ImageAdapter

java neo4j 密码查询来匹配节点

Java:验证文本字段输入是否仅包含字母字符

Azure - 启用辅助人员/Web 角色的诊断

c++ - 用于调试日志语句的预处理器宏是否在 C++ 中占有一席之地?

java - Spring Hibernate,从下拉菜单中选择时更新 JSP View

java - 用于Java的smslib : Error for sending message example

javascript - 我可以在 javascript 中扩展控制台对象(用于重新路由日志记录)吗?

mongodb - 日志轮换在 Centos 6.6 MongoDB 3.2.12 中不起作用

使用 flogs 的 Flutter 日志 - 它将保存在哪里