找不到log4j2配置文件

时间:2016-09-24 12:21:49

标签: java logging ant log4j2

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

我有一个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>

1 个答案:

答案 0 :(得分:6)

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

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

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

备用方法将log4j配置文件路径设置为构建脚本中的系统属性。

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

以下是log4j configuration的文档。