如何在单元测试环境中配置log4j?

Lan*_*uhn 22 java unit-testing log4j

配置log4j以在单元测试环境中使用的最佳方法是什么?我更喜欢我的单元测试没有外部依赖,所以读取log4j配置文件不是一个选项.理想情况下,我可以在单元测试设置功能中进行1或2个函数调用.

hvg*_*des 18

你可以在测试的顶部放置一个静态代码块

BasicConfigurator.configure();
Run Code Online (Sandbox Code Playgroud)

请注意,这个问题是每次执行该行时,log4j都会添加一个appender,你会得到重复的日志语句.因此,如果您在每个测试类中执行此操作,您将最终得到每个日志语句的n个重复项.

因此,我建议创建一个类BaseTestCase并在那里执行此操作.

注意,拥有某种具有相关配置的测试资源并不是一个坏主意......

  • 一种更简单的方法是不"在每个日志语句中复制n个重复"是在上面的代码行之前:BasicConfigurator.resetConfiguration(); (13认同)
  • @urig:你结识了我的一天 (2认同)