In unit tests, it can be useful to suppress all logging for successful tests, but still log everything when tests fail.In order to accomplish this, we need to buffer all logging before we know the result of the test, and then flush or clear the buffer once we know the outcome. BufferedAppender BufferedAppender is the logback appender that buffers all logging until it receives a CLEAR or FLUSH marker.You can use directly in logback configuration. It requires a delegate appender for flushing, declared using an appender-ref . BufferedAppender lives in the liftwizard-logging-buffered-appender module. xml <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-logging-buffered-appender</artifactId> <scope>test</scope> </dependency> Log Markers We must log CLEAR and FLUSH markers to instruct BufferedAppender to clear or flush its logs. If you are using JUnit 4 or 5, you can use the included Rule or Extension to log these markers automatically. JUnit 4 LogMarkerTestRule is a JUnit 4 Rule that clears the buffer before all tests and flushes the buffer after failed tests. It does this by logging CLEAR and FLUSH markers. java public class ExampleTest { @Rule public final TestRule logMarkerTestRule = new LogMarkerTestRule(); @Test public void smokeTest() { // test code } } LogMarkerTestRule lives in the liftwizard-junit-rule-log-marker module. xml <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-junit-rule-log-marker</artifactId> <scope>test</scope> </dependency> JUnit 5 LogMarkerTestExtension is a JUnit 5 Extension that clears the buffer before all tests and flushes the buffer after failed tests. It does this by logging CLEAR and FLUSH markers. java @ExtendWith(LogMarkerTestExtension.class) public class ExampleTest { @Test public void smokeTest() { // test code } } LogMarkerTestExtension lives in the liftwizard-junit-extension-log-marker module. xml <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-junit-extension-log-marker</artifactId> <scope>test</scope> </dependency> BufferedAppenderFactory The BufferedAppenderFactory allows you to use an appender with the type buffered where you would otherwise use console in your Dropwizard configuration. json5 "logging": { "level": "DEBUG", "appenders": [ { "type": "buffered", "timeZone": "system", "logFormat": "%highlight(%-5level) %cyan(%date{HH:mm:ss}) %gray(\(%file:%line\)) [%white(%thread)] %blue(%marker) {%magenta(%mdc)} %green(%logger): %message%n%red(%rootException)", "includeCallerData": true, }, ] } BufferedAppenderFactory lives in the liftwizard-config-logging-buffered module. xml <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-config-logging-buffered</artifactId> <scope>test</scope> </dependency> Note: BufferedAppenderFactory is primarily useful for tests that use https://www.dropwizard.io/en/release-2.1.x/manual/testing.html#junit-4 Dropwizard's JUnit 4 Rule DropwizardAppRule or https://www.dropwizard.io/en/release-2.1.x/manual/testing.html#junit-5 Dropwizard's JUnit 5 Extension DropwizardAppExtension . java private final TestRule logMarkerTestRule = new LogMarkerTestRule(); private final DropwizardAppRule<HelloWorldConfiguration> dropwizardAppRule = new DropwizardAppRule<>( HelloWorldApplication.class, ResourceHelpers.resourceFilePath("test-example.json5")); @Rule public final RuleChain ruleChain = RuleChain .outerRule(this.dropwizardAppRule) .around(this.logMarkerTestRule); Note: LogMarkerTestRule needs to be an inner rule, with any other rules that tear down logging outer to it.