原文: https://howtodoinjava.com/log4j2/configure-log4j2-for-junit/

大多数开发人员都希望使用不同的 log4j2 配置文件进行 junit 测试。 让我们学习一些推荐的配置 Log4j2 的推荐方法,这些方法特定于 junit 测试用例,并且与生产环境不同。

  1. Table of Contents
  2. Place log4j2-test.xml in test folder
  3. Use log4j.configurationFile property in @BeforeClass

log4j2-test.xml放入测试文件夹

log4j2-test.xml文件放置在src/test/resources文件夹中。 通过将log4j2-test.xml放入此目录,将导致使用它代替可能存在的log4j2.xmllog4j2.json

为 JUnit 测试用例配置 Log4j2 - 图1

用于 JUnit 的 Log4j2 配置

@BeforeClass中使用log4j.configurationFile属性

为 junit 测试引入不同日志文件的另一种方法是 – 在任何测试类的@BeforeClass注解中设置log4j.configurationFile属性。

例如。 创建测试特定的日志记录配置文件log4j2-testConfig.xml,并将其放置在resources文件夹中。 现在,让我们在 JUnit 测试中使用该文件。

  1. import java.net.MalformedURLException;
  2. import org.apache.logging.log4j.LogManager;
  3. import org.apache.logging.log4j.Logger;
  4. import org.junit.BeforeClass;
  5. import org.junit.Test;
  6. public class HelloWorldTest
  7. {
  8. private static Logger LOGGER = null;
  9. @BeforeClass
  10. public static void setLogger() throws MalformedURLException
  11. {
  12. System.setProperty("log4j.configurationFile","log4j2-testConfig.xml");
  13. LOGGER = LogManager.getLogger();
  14. }
  15. @Test
  16. public void testOne()
  17. {
  18. LOGGER.debug("Debug Message Logged !!!");
  19. LOGGER.info("Info Message Logged !!!");
  20. LOGGER.error("Error Message Logged !!!", new NullPointerException("NullError"));
  21. }
  22. }

在评论部分中,将有关 junit 测试的 log4j2 配置的问题交给我。

学习愉快!