找不到 log4j2 配置文件

log4j2 configuration file not found

我很难理解这个问题出了什么问题。

我有一个 java 项目(没有 Eclipse/Maven),结构如下:

├── build
│   ├── classes
│   │   └── oata
│   │       └── HelloWorld.class
│   └── jar
│       └── HelloWorld.jar
├── build.xml
├── lib
│   ├── log4j-api-2.3.jar
│   └── log4j-core-2.3.jar
├── myManifest
└── src
    ├── log4j2.xml
    └── oata
        └── HelloWorld.java

在使用 ant 构建时,我总是发现找不到 log4j2 配置文件。 我已经看过类似的问题,常见问题是关于 xml 文件不在类路径中,这不是我的情况。无论如何这是错误:

[java] ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

这是我的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="oata"
status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
</Appenders>
<Loggers>
    <Logger name="oata.HelloWorld" level="trace">
        <AppenderRef ref="Console"/>
    </Logger>
    <Root level="trace">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
</Configuration>

我假设您正在使用 Ant 构建脚本执行 java class。

No log4j2 configuration file found 表示 log4j2.xml 配置文件不在您的 class 路径中。

请验证 HelloWorld.jar 是否包含 log4j 配置文件。

另一种方法是在构建脚本中将 log4j 配置文件路径设置为系统 属性。

<sysproperty key="log4j.configurationFile" value="file:///${basedir}/src/log4j2.xml" />

这是 log4j configuration 的文档。