我最近开始使用log4j2,我试图在我的单元测试中测试我的日志消息。这对于log4j1x API来说非常简单,但是现在使用log4j2并不能正常工作。我正在使用JUnit 4和Mockito。我的想法是创建一个模拟appender,然后从append方法中捕获Log事件并验证消息。断言与log4j2和mockito的日志消息
@Mock
Appender mockAppender;
@Captor
private ArgumentCaptor<LogEvent> logEvent;
在我的@Before方法,我有以下
LoggerContext ctx = (LoggerContext)LogManager.getContext();
Configuration config = ctx.getConfiguration();
ctx.getConfiguration().addAppender(mockAppender);
LoggerConfig rootConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
rootConfig.setLevel(Level.DEBUG);
rootConfig.addAppender(mockAppender, Level.DEBUG, null);
ctx.updateLoggers();
在我的测试方法
logger.error("test");
verify(mockAppender, times(1)).append(logEvent.capture());
我得到一个失败的话说,追加方法不会被调用。有人对此有任何想法吗?由于