【发布时间】:2014-09-13 11:18:05
【问题描述】:
我正在使用 Spring Framework (4.1.0) 构建示例应用程序,我可以在其中使用单元测试。
我的测试类使用 @RunWith(SpringJUnit4ClassRunner.class) 注释记录 WARNS
log4j:WARN 找不到记录器的附加程序(org.springframework.test.context.junit4.SpringJUnit4ClassRunner)。
log4j:WARN 请正确初始化log4j系统。
在控制台中,因为我没有使用基于 log4j2 文件的配置。
我的测试类还使用@ContextConfiguration(classes = { AppConfig.class, ServletConfig.class }) 注释指向我尝试初始化log4j2 的上下文。
问题:在没有基于文件的配置的情况下,如何正确初始化 log4j2 以将其与 SpringJUnit4ClassRunner 一起使用?
欢迎使用其他基于 Java 的配置方法 :)
【问题讨论】:
-
我在我的 test/resources 文件夹中放置了一个 log4j.xml 文件。
-
据此记录,
SpringJUnit4ClassRunner与 log4j 无关。 -
@Hannes,如果我错了,请纠正我,但在
SpringJUnit4ClassRunner的开头我们有private static final org.apache.commons.logging.Log logger;,这意味着它与log4j2相关。 -
这是commons-logging,会查找你使用的日志机制。因此,如果它找到一个 log4 库,它将使用它。如果没有找到,它将使用 sysout。
-
你是对的,但问题仍然有效。
标签: java spring unit-testing log4j2