[slf4j-dev] [JIRA] (SLF4J-461) JUnit Support
QOS.CH (JIRA)
noreply-jira at qos.ch
Mon May 13 09:51:00 CEST 2019
Aaron Digulla created SLF4J-461:
-----------------------------------
Summary: JUnit Support
Key: SLF4J-461
URL: https://jira.qos.ch/browse/SLF4J-461
Project: SLF4J
Issue Type: New Feature
Components: Unspecified
Affects Versions: 1.8.0-beta4, 1.7.25
Reporter: Aaron Digulla
Assignee: SLF4J developers list
I would like to submit some code to help write unit tests that verify log behavior. Examples:
* Make sure that some code correctly logs errors and warnings
* The log messages contain the correct information (instead of, say, "[byte").
* Files are logged with absolute path
* Remove (expected) stack traces from test output
My code contains a class RedirectLogger which takes lists of classes or logger names and adds appenders to those which collect log events in a list.
At the end of the test, you can call a dump() method (optionally with a filter) to get everything that was logged.
Example code before Java 8:
{code:java}
RedirectLogger rl = new RedirectLogger(Tool.class, Util.class);
try {
rl.install();
tool.foo();
} finally {
rl.deinstall();
}
assertEquals("Expected log lines", rl.dump(Level.WARN));
{code}
Example > Java 8 with method that returns value:
{code:java}
RedirectLogger rl = new RedirectLogger(Tool.class, Util.class);
Type result = rl.with(() -> {
return tool.bar();
});
assertEquals(..., result);
assertEquals("Expected log lines", rl.dump(Level.WARN));{code}
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
More information about the slf4j-dev
mailing list