我很难理解这个问题出了什么问题。
我有一个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>
答案 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的文档。