2014-09-12 108 views
3

我在eclipse classpath中分别有src/main/resourcessrc/test/resources这两个日志文件。日志中的log4j2.xml和log4j2-test.xml

问题是log4j2-test.xml具有更高的优先级,并且在运行我的应用程序时总是选择的配置文件。如何让eclipse在运行我的应用程序时忽略log4j2-test.xml并使用log4j2.xml,并在运行单元测试时回退到log4j2-test.xml

+0

您使用的是maven吗? – cy3er 2014-09-12 11:35:05

+1

是的,我使用的是maven。我通过将这添加到tomcat启动配置来解决问题:-Dlog4j.configurationFile =“file:C:\ blah ... \ src \ main \ resources \ log4j2.xml” – 2014-09-12 11:45:46

回答

0

您可以在junit setup()方法中执行以下语句。该文件应该在您运行此文件的相同包中可用,或者您可以提供此文件的完整路径。

PropertyConfigurator.configure("log4j2-test.xml"); 
+2

这是一个log4j-1.2 API,它确实不适用于log4j2。 – 2014-09-12 17:30:47

-1

在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是在类路径中。