2016-09-24 129 views
1

我很努力去理解这个问题出了什么问题。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 

与蚂蚁我一直得到了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> 

回答

6

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

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

请确认HelloWorld.jar是否包含log4j confuguration文件。

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

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

这是log4j configuration的文档。

+0

感谢您的完整答案!我没有在jar中的.xml,所以添加sysproperty工作。 – geek4079

+0

欢迎@ geek4079 :) –

+0

完美!谢谢。它也适用于我的值=“src/log4j2.xml” – Jack