Comment intercepter SLF4J logging via un test JUnit?

est - il possible d'intercepter d'une façon ou d'une autre la journalisation (SLF4J + logback) et d'obtenir un InputStream (ou quelque chose d'autre qui est lisible) via un cas de test de JUnit...?

24
demandé sur carlspring 2015-03-16 15:36:20

4 réponses

Vous pouvez créer un appender

public class TestAppender extends AppenderBase<LoggingEvent> {
    static List<LoggingEvent> events = new ArrayList<>();

    @Override
    protected void append(LoggingEvent e) {
        events.add(e);
    }
}

et configurer logback-test.xml à utiliser. Nous pouvons maintenant vérifier les événements de journalisation à partir de notre test:

@Test
public void test() {
    ...
    Assert.assertEquals(1, TestAppender.events.size());
    ...
}
15
répondu Evgeniy Dorofeev 2015-03-16 13:25:14