diff --git a/ebean-test/src/main/java/io/ebean/test/CaptureLogger.java b/ebean-test/src/main/java/io/ebean/test/CaptureLogger.java index b02413f91..b14f8d5b9 100644 --- a/ebean-test/src/main/java/io/ebean/test/CaptureLogger.java +++ b/ebean-test/src/main/java/io/ebean/test/CaptureLogger.java @@ -27,7 +27,11 @@ final class CaptureLogger implements SpiLogger { @Override public void debug(String msg, Object... args) { if (active) { - messages.add(MessageFormat.format(msg, args)); + if (args != null && args.length > 0) { + messages.add(MessageFormat.format(msg, args)); + } else { + messages.add(msg); + } } wrapped.debug(msg, args); } diff --git a/ebean-test/src/test/java/io/ebean/test/TestCaptureLogger.java b/ebean-test/src/test/java/io/ebean/test/TestCaptureLogger.java new file mode 100644 index 000000000..8560f0924 --- /dev/null +++ b/ebean-test/src/test/java/io/ebean/test/TestCaptureLogger.java @@ -0,0 +1,33 @@ +package io.ebean.test; + +import io.ebeaninternal.api.SpiLogger; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class TestCaptureLogger { + + @Test + void testDefaultLogger() { + SpiLogger logger = new CapturingLoggerFactory().create("io.ebean.test.loggerTest"); + doSomeLogs(logger); + + CaptureLogger captureLogger = new CaptureLogger(logger); + captureLogger.start(); + doSomeLogs(captureLogger); + assertThat(captureLogger.stop()).containsExactly( + "test {0}", "test {}", "test {bla}", "test {bla} {0}", "test {bla} {0}", "test {bla} 1", "test '{bla}' {0}"); + } + + void doSomeLogs(SpiLogger logger) { + logger.debug("test {0}"); // Returns "test {0}" + logger.debug("test {}"); // Returns "test {}" + logger.debug("test {bla}"); // Returns "test {bla}" + logger.debug("test {bla} {0}"); // Returns "test {bla} {0}" + logger.debug("test {bla} {0}", new Object[]{}); // Returns "test {bla} {0}" + //logger.debug("Test {bla} {0}", 1); // fails: "can't parse argument number: bla" + logger.debug("test '{bla}' {0}", 1); // Returns "test {bla} 1" + logger.debug("test '{bla}' {0}"); // Returns "test '{bla}' {0}" + } + +} diff --git a/ebean-test/src/test/resources/logback-test.xml b/ebean-test/src/test/resources/logback-test.xml index 529a103d0..36c235e0c 100644 --- a/ebean-test/src/test/resources/logback-test.xml +++ b/ebean-test/src/test/resources/logback-test.xml @@ -78,6 +78,7 @@ +