如何通过JUnit测试拦截SLF4J日志记录? [英] How to intercept SLF4J logging via a JUnit test?
本文介绍了如何通过JUnit测试拦截SLF4J日志记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有可能通过JUnit测试用例以某种方式拦截日志记录(SLF4J + logback)并获取 InputStream
(或其他可读的内容)?
Is it possible to somehow intercept the logging (SLF4J + logback) and get an InputStream
(or something else that is readable) via a JUnit test case...?
推荐答案
您可以创建自定义appender
You can create a custom appender
public class TestAppender extends AppenderBase<LoggingEvent> {
static List<LoggingEvent> events = new ArrayList<>();
@Override
protected void append(LoggingEvent e) {
events.add(e);
}
}
并配置logback-test.xml以使用它。现在我们可以检查测试中的记录事件:
and configure logback-test.xml to use it. Now we can check logging events from our test:
@Test
public void test() {
...
Assert.assertEquals(1, TestAppender.events.size());
...
}
这篇关于如何通过JUnit测试拦截SLF4J日志记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文