gpt4 book ai didi

Java:log4j 初始化错误

转载 作者:行者123 更新时间:2023-11-29 03:41:56 26 4
gpt4 key购买 nike

我是 log4j 包的新手,我没有看到错误:这是一个非常简单明了的代码示例:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class TestLogger {

private static Logger logger;

public static void main(String[] args) {

logger = LogManager.getLogger(TestLogger.class);
logger.info("Hello");

}
}

当我尝试编译时出现此错误:

Exception in thread "main" java.lang.NullPointerException at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:129) at my.package.logging.TestLogger.main(TestLogger.java:15)

我想知道这到底是什么意思...

你能帮忙吗?

最佳答案

我通过避免在 log4j2 jar 的类路径上复制多个副本来解决这个问题。

NPE 出现在 LogManager 的第 129 行。(返回语句=第129行)

/**
* Return a Logger with the specified name.
*
* @param name The logger name.
* @return The Logger.
*/
public static Logger getLogger(String name) {

return factory.getContext(LogManager.class.getName(), null, false).getLogger(name);
}

问题似乎是,工厂 (LoggerContextFactory) 为 null = 未初始化。初始化发生在类 LogManager 的静态初始化程序 block 中。

我的假设是,当类路径上有多个 LogManager 时,初始化会失败。

在我的项目(一个用 eclipse 开发的网络应用程序)中,我的 WEB-INF/lib 中有 jars and 被另一个项目的依赖引用。使所有引用指向相同的 jar 解决了我的问题。

关于Java:log4j 初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com