2016-09-24 89 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