Java:log4j初始化错误
我是使用log4j软件包的新手,没有看到错误: 这是一个非常简单明了的代码示例:Java:log4j初始化错误,java,logging,log4j,Java,Logging,Log4j,我是使用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 =
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");
}
}
当我尝试编译时,出现以下错误:
线程“main”java.lang.NullPointerException中的异常位于
org.apache.logging.log4j.LogManager.getLogger(LogManager.java:129)位于
main(TestLogger.java:15)
我想知道这到底意味着什么
你能在这里帮忙吗?以下内容适合我(更新:现在与你原来的帖子相同,但显示导入内容) 如果您已经创建了log4j配置,否则将出现可怕的错误:
log4j:WARN No appenders could be found for logger (TestLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
以下内容对我很有用(更新:现在与你原来的帖子相同,但显示了导入内容) 如果您已经创建了log4j配置,否则将出现可怕的错误:
log4j:WARN No appenders could be found for logger (TestLogger).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
您很可能缺少一个依赖项。如果只在类路径中包含
log4j-api-2.0-beta1.jar
文件,那么这很容易复制
如果已下载,请在类路径中也包含log4j-core-2.0-beta1.jar
。如果您正在使用Maven,请将其放入pom.xml
:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta1</version>
</dependency>
org.apache.logging.log4j
log4japi
2.0-beta1
org.apache.logging.log4j
log4j型芯
2.0-beta1
您很可能缺少一个依赖项。如果只在类路径中包含log4j-api-2.0-beta1.jar
文件,那么这很容易复制
如果已下载,请在类路径中也包含log4j-core-2.0-beta1.jar
。如果您正在使用Maven,请将其放入pom.xml
:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta1</version>
</dependency>
org.apache.logging.log4j
log4japi
2.0-beta1
org.apache.logging.log4j
log4j型芯
2.0-beta1
我通过避免log4j2 jar类路径上的多个副本解决了这个问题
NPE发生在LogManager的第129行。
(返回语句=第129行)
问题似乎是工厂(LoggerContextFactory)为null=未初始化。
初始化在类LogManager中的静态初始值设定项块中进行
我的假设是,当类路径上有多个LogManager时,初始化失败
在我的项目(一个用eclipse开发的WEB应用程序)中,我在WEB-INF/lib中有JAR,并由另一个项目的依赖项引用。
在我的案例中,让所有引用指向相同的JAR解决了这个问题 我通过避免log4j2 jar类路径上的多个副本来解决这个问题 NPE发生在LogManager的第129行。 (返回语句=第129行) 问题似乎是工厂(LoggerContextFactory)为null=未初始化。 初始化在类LogManager中的静态初始值设定项块中进行 我的假设是,当类路径上有多个LogManager时,初始化失败 在我的项目(一个用eclipse开发的WEB应用程序)中,我在WEB-INF/lib中有JAR,并由另一个项目的依赖项引用。
在我的案例中,让所有引用指向相同的JAR解决了这个问题 您使用的是哪个版本的
log4j
?同时发布您的.properties
或.xml
文件。请阅读下一篇文章,您将面临缺少附加程序的问题。我使用的是不带xml的2.0-beta1版本,即默认情况下应该处理它。您使用的是log4j
的哪个版本?同时发布您的.properties
或.xml
文件。请阅读下一篇文章,您将面临缺少附加程序的问题。我使用的是不带xml的2.0-beta1版本,即默认情况下应该处理它。此代码直接采用自。记录器已经没有这样的功能了。可能在log4j.v1OK中—但我刚刚尝试了两个版本(Logger和LogManager),两个版本都适合我。我加了进口货。因为我使用的是log4j-api2.0-beta1包,所以有另一个包引用org.apache.logging.log4j,而不是log4j12包中的org.apache.log4j,这也许可以解释这一点——我使用的是1.2.16,无论如何,我尝试使用1.2,并在org.apache.logging.log4j.LogManager.getContext(LogManager.java:203)获得了一个java.lang.NullPointerException本规范直接采用自。记录器已经没有这样的功能了。可能在log4j.v1OK中—但我刚刚尝试了两个版本(Logger和LogManager),两个版本都适合我。我加了进口货。因为我使用的是log4j-api2.0-beta1包,所以有另一个包引用org.apache.logging.log4j,而不是log4j12包中的org.apache.log4j,这也许可以解释这一点——我使用的是1.2.16,无论如何,我尝试使用1.2,并在org.apache.logging.log4j.LogManager.getContext(LogManager.java:203)获得了一个java.lang.NullPointerException你说的完全正确。当缺少将log4j core添加到引用库时,会发生此错误!现在,当我实现我的第一个基本xml时,我能够记录日志了。谢谢!你说的完全正确。当缺少将log4j core添加到引用库时,会发生此错误!现在,当我实现我的第一个基本xml时,我能够记录日志了。谢谢!