From 2817875706265c04028c0b731f31bd263f1af01b Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 1 Jun 2018 14:15:05 +1200 Subject: [PATCH] #1402 - Refactor SQL Logging internals (io.ebean.SQL) such that it is easier to capture for testing/asserts --- .../server/core/InternalConfiguration.java | 4 +-- .../server/logger/DLogManager.java | 33 +++++++++++++++++++ .../server/logger/DLoggerFactory.java | 19 +++++++++++ .../server/logger/DSpiLogger.java | 33 +++++++++++++++++++ .../io/ebeantest/CapturingLoggerFactory.java | 2 +- src/test/java/io/ebeantest/LoggedSql.java | 2 +- 6 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 src/main/java/io/ebeaninternal/server/logger/DLogManager.java create mode 100644 src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java create mode 100644 src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java diff --git a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index 8d9b477c4..4ea1988a1 100644 --- a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -47,8 +47,8 @@ import io.ebeaninternal.server.dto.DtoBeanManager; import io.ebeaninternal.server.expression.DefaultExpressionFactory; import io.ebeaninternal.server.expression.platform.DbExpressionHandler; import io.ebeaninternal.server.expression.platform.DbExpressionHandlerFactory; -import io.ebeaninternal.server.log.DLogManager; -import io.ebeaninternal.server.log.DLoggerFactory; +import io.ebeaninternal.server.logger.DLogManager; +import io.ebeaninternal.server.logger.DLoggerFactory; import io.ebeaninternal.server.persist.Binder; import io.ebeaninternal.server.persist.DefaultPersister; import io.ebeaninternal.server.persist.platform.MultiValueBind; diff --git a/src/main/java/io/ebeaninternal/server/logger/DLogManager.java b/src/main/java/io/ebeaninternal/server/logger/DLogManager.java new file mode 100644 index 000000000..79ece19fc --- /dev/null +++ b/src/main/java/io/ebeaninternal/server/logger/DLogManager.java @@ -0,0 +1,33 @@ +package io.ebeaninternal.server.logger; + +import io.ebeaninternal.api.SpiLogManager; +import io.ebeaninternal.api.SpiLogger; + +public class DLogManager implements SpiLogManager { + + private final SpiLogger sql; + private final SpiLogger summary; + private final SpiLogger txn; + + public DLogManager(SpiLogger sql, SpiLogger summary, SpiLogger txn) { + this.sql = sql; + this.summary = summary; + this.txn = txn; + } + + @Override + public SpiLogger txn() { + return txn; + } + + @Override + public SpiLogger sql() { + return sql; + } + + @Override + public SpiLogger sum() { + return summary; + } + +} diff --git a/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java b/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java new file mode 100644 index 000000000..65dbef013 --- /dev/null +++ b/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java @@ -0,0 +1,19 @@ +package io.ebeaninternal.server.logger; + +import io.ebeaninternal.api.SpiLogger; +import io.ebeaninternal.api.SpiLoggerFactory; +import org.slf4j.LoggerFactory; + +/** + * Default SpiLoggerFactory implementation. + */ +public class DLoggerFactory implements SpiLoggerFactory { + + /** + * Just use a standard slf4j Logger. + */ + @Override + public SpiLogger create(String name) { + return new DSpiLogger(LoggerFactory.getLogger(name)); + } +} diff --git a/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java b/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java new file mode 100644 index 000000000..87b78052f --- /dev/null +++ b/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java @@ -0,0 +1,33 @@ +package io.ebeaninternal.server.logger; + +import io.ebeaninternal.api.SpiLogger; +import org.slf4j.Logger; + +public class DSpiLogger implements SpiLogger { + + private final Logger logger; + + public DSpiLogger(Logger logger) { + this.logger = logger; + } + + @Override + public boolean isDebug() { + return logger.isDebugEnabled(); + } + + @Override + public boolean isTrace() { + return logger.isTraceEnabled(); + } + + @Override + public void debug(String msg) { + logger.debug(msg); + } + + @Override + public void trace(String msg) { + logger.trace(msg); + } +} diff --git a/src/test/java/io/ebeantest/CapturingLoggerFactory.java b/src/test/java/io/ebeantest/CapturingLoggerFactory.java index 25738356a..ebbebd2fe 100644 --- a/src/test/java/io/ebeantest/CapturingLoggerFactory.java +++ b/src/test/java/io/ebeantest/CapturingLoggerFactory.java @@ -2,7 +2,7 @@ package io.ebeantest; import io.ebeaninternal.api.SpiLogger; import io.ebeaninternal.api.SpiLoggerFactory; -import io.ebeaninternal.server.log.DSpiLogger; +import io.ebeaninternal.server.logger.DSpiLogger; import org.slf4j.LoggerFactory; /** diff --git a/src/test/java/io/ebeantest/LoggedSql.java b/src/test/java/io/ebeantest/LoggedSql.java index f0df43294..db7cac92c 100644 --- a/src/test/java/io/ebeantest/LoggedSql.java +++ b/src/test/java/io/ebeantest/LoggedSql.java @@ -1,7 +1,7 @@ package io.ebeantest; import io.ebeaninternal.api.SpiLogger; -import io.ebeaninternal.server.log.DSpiLogger; +import io.ebeaninternal.server.logger.DSpiLogger; import java.util.List;