Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:log4j初始化错误_Java_Logging_Log4j - Fatal编程技术网

Java: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 =

我是使用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");

    }
}
当我尝试编译时,出现以下错误:

线程“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时,我能够记录日志了。谢谢!