Merge pull request #2980 from FOCONIS/fix-logger

FIX: do not format log messages, when no parameter was specified
This commit is contained in:
Rob Bygrave
2023-02-22 23:38:08 +13:00
committed by GitHub
3 changed files with 39 additions and 1 deletions
@@ -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);
}
@@ -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}"
}
}
@@ -78,6 +78,7 @@
<logger name="io.ebean.docker" level="DEBUG"/>
<logger name="io.ebean.test" level="TRACE"/>
<logger name="io.ebean.MarkedAsDeleted" level="DEBUG"/>
<logger name="io.ebean.test.loggerTest" level="DEBUG"/>
<!-- <logger name="io.ebean.DDL" level="DEBUG"/>-->