我的eclipse类路径中有两个日志文件,分别位于src/main/resources
和src/test/resources
。
问题是log4j2-test.xml
具有更高的优先级,并且在运行我的应用程序时始终是所选的配置文件。如何在运行我的应用程序时告诉eclipse忽略log4j2-test.xml
并使用log4j2.xml
并在运行单元测试时回退到log4j2-test.xml
?
答案 0 :(得分:0)
您可以在junit setup()方法中执行以下语句。此文件应该在您运行此文件的同一个包中提供,或者您可以提供此文件的完整路径。
PropertyConfigurator.configure("log4j2-test.xml");
答案 1 :(得分:0)
仅仅是因为有人仍然像我一样遇到一些重大麻烦。 可行的解决方案是:
添加“ Eclipse-BuddyPolicy:已注册” MyLog4J插件的Manifest.MF
会将log4j2.xml放在src文件夹中 并将“ Eclipse-RegisterBuddy:MyLog4J”添加到Manifest.MF
Eclipse-RegisterBuddy 是允许log4j在启动过程中找到log4j2.xml文件的关键步骤!
现在,您可以在所有项目中重复使用MyLOG4J插件,并且每个应用程序都有一个单独的log4j2.xml文件。
答案 2 :(得分:-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在您的类路径中。