我在eclipse classpath中分別有src/main/resources
和src/test/resources
這兩個日誌文件。日誌中的log4j2.xml和log4j2-test.xml
問題是log4j2-test.xml
具有更高的優先級,並且在運行我的應用程序時總是選擇的配置文件。如何讓eclipse在運行我的應用程序時忽略log4j2-test.xml
並使用log4j2.xml
,並在運行單元測試時回退到log4j2-test.xml
?
我在eclipse classpath中分別有src/main/resources
和src/test/resources
這兩個日誌文件。日誌中的log4j2.xml和log4j2-test.xml
問題是log4j2-test.xml
具有更高的優先級,並且在運行我的應用程序時總是選擇的配置文件。如何讓eclipse在運行我的應用程序時忽略log4j2-test.xml
並使用log4j2.xml
,並在運行單元測試時回退到log4j2-test.xml
?
您可以在junit setup()方法中執行以下語句。該文件應該在您運行此文件的相同包中可用,或者您可以提供此文件的完整路徑。
PropertyConfigurator.configure("log4j2-test.xml");
這是一個log4j-1.2 API,它確實不適用於log4j2。 – 2014-09-12 17:30:47
在log4j2你可以寫以下
org.apache.logging.log4j.LogManager ctx = (org.apache.logging.log4j.LogManager) LogManager.getContext(true);
ctx.setConfigLocation(LoggerTest.class.getClassLoader().getResource("log4j2-test.xml").toURI());
假設log4j2-的test.xml是在類路徑中。
您使用的是maven嗎? – cy3er 2014-09-12 11:35:05
是的,我使用的是maven。我通過將這添加到tomcat啓動配置來解決問題:-Dlog4j.configurationFile =「file:C:\ blah ... \ src \ main \ resources \ log4j2.xml」 – 2014-09-12 11:45:46