本文介绍了如何通过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日志记录?
发布评论