Skip to content
This repository was archived by the owner on Oct 24, 2020. It is now read-only.

Commit f2bc8fa

Browse files
committed
Simplify the JdbcLogger implimentation
1 parent 2822cfb commit f2bc8fa

File tree

6 files changed

+77
-23
lines changed

6 files changed

+77
-23
lines changed

deployment/src/test/java/org/seasar/doma/quarkus/deployment/ApplicationPropertiesTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.seasar.doma.jdbc.Config;
1515
import org.seasar.doma.jdbc.Naming;
1616
import org.seasar.doma.jdbc.SqlLogType;
17+
import org.seasar.doma.quarkus.runtime.DomaLogger;
1718

1819
public class ApplicationPropertiesTest {
1920

@@ -39,10 +40,14 @@ public class ApplicationPropertiesTest {
3940
+ "quarkus.doma.fetch-size=20\n"
4041
+ "quarkus.doma.max-rows=30\n"
4142
+ "quarkus.doma.query-timeout=40\n"
43+
+ "quarkus.doma.log.sql=true\n"
44+
+ "quarkus.doma.log.dao=true\n"
45+
+ "quarkus.doma.log.closing-failure=true\n"
4246
+ "quarkus.log.category.\"org.seasar.doma\".level=DEBUG\n"),
4347
"application.properties"));
4448

4549
@Inject Config config;
50+
@Inject DomaLogger domaLogger;
4651

4752
@Test
4853
public void test() {
@@ -56,5 +61,9 @@ public void test() {
5661
assertEquals(20, config.getFetchSize());
5762
assertEquals(30, config.getMaxRows());
5863
assertEquals(40, config.getQueryTimeout());
64+
65+
assertTrue(domaLogger.getLogPreferences().isSql());
66+
assertTrue(domaLogger.getLogPreferences().isDao());
67+
assertTrue(domaLogger.getLogPreferences().isClosingFailure());
5968
}
6069
}

runtime/src/main/java/org/seasar/doma/quarkus/runtime/JBossJdbcLogger.java renamed to runtime/src/main/java/org/seasar/doma/quarkus/runtime/DomaLogger.java

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
package org.seasar.doma.quarkus.runtime;
22

33
import java.sql.SQLException;
4+
import java.util.Objects;
45
import java.util.function.Supplier;
56
import org.jboss.logging.Logger;
67
import org.seasar.doma.jdbc.AbstractJdbcLogger;
78
import org.seasar.doma.jdbc.Sql;
89
import org.seasar.doma.jdbc.SqlExecutionSkipCause;
910

10-
public class JBossJdbcLogger extends AbstractJdbcLogger<Logger.Level> {
11+
public class DomaLogger extends AbstractJdbcLogger<Logger.Level> {
1112

12-
private final DomaSettings.LogSettings logSettings;
13+
private final LogPreferences logPreferences;
1314

14-
JBossJdbcLogger() {
15-
this(new DomaSettings.LogSettings());
15+
DomaLogger() {
16+
this(new LogPreferences());
1617
}
1718

18-
public JBossJdbcLogger(DomaSettings.LogSettings logSettings) {
19+
public DomaLogger(LogPreferences logPreferences) {
1920
super(Logger.Level.DEBUG);
20-
this.logSettings = logSettings;
21+
this.logPreferences = Objects.requireNonNull(logPreferences);
22+
}
23+
24+
public LogPreferences getLogPreferences() {
25+
return logPreferences;
2126
}
2227

2328
@Override
@@ -28,7 +33,9 @@ protected void log(
2833
Throwable throwable,
2934
Supplier<String> messageSupplier) {
3035
var logger = Logger.getLogger(callerClassName);
31-
logger.log(level, messageSupplier.get(), throwable);
36+
if (logger.isEnabled(level)) {
37+
logger.log(level, messageSupplier.get(), throwable);
38+
}
3239
}
3340

3441
@Override
@@ -38,7 +45,7 @@ protected void logSql(
3845
Sql<?> sql,
3946
Logger.Level level,
4047
Supplier<String> messageSupplier) {
41-
if (logSettings.sql) {
48+
if (logPreferences.isSql()) {
4249
var logger = Logger.getLogger(callerClassName);
4350
logger.info(messageSupplier.get());
4451
} else {
@@ -53,7 +60,7 @@ protected void logDaoMethodEntering(
5360
Object[] args,
5461
Logger.Level level,
5562
Supplier<String> messageSupplier) {
56-
if (logSettings.dao) {
63+
if (logPreferences.isDao()) {
5764
var logger = Logger.getLogger(callerClassName);
5865
logger.info(messageSupplier.get());
5966
} else {
@@ -68,7 +75,7 @@ protected void logDaoMethodExiting(
6875
Object result,
6976
Logger.Level level,
7077
Supplier<String> messageSupplier) {
71-
if (logSettings.dao) {
78+
if (logPreferences.isDao()) {
7279
var logger = Logger.getLogger(callerClassName);
7380
logger.info(messageSupplier.get());
7481
} else {
@@ -83,7 +90,7 @@ protected void logDaoMethodThrowing(
8390
RuntimeException e,
8491
Logger.Level level,
8592
Supplier<String> messageSupplier) {
86-
if (logSettings.dao) {
93+
if (logPreferences.isDao()) {
8794
var logger = Logger.getLogger(callerClassName);
8895
logger.info(messageSupplier.get(), e);
8996
} else {
@@ -98,7 +105,7 @@ protected void logSqlExecutionSkipping(
98105
SqlExecutionSkipCause cause,
99106
Logger.Level level,
100107
Supplier<String> messageSupplier) {
101-
if (logSettings.dao) {
108+
if (logPreferences.isDao()) {
102109
var logger = Logger.getLogger(callerClassName);
103110
logger.info(messageSupplier.get());
104111
} else {
@@ -114,7 +121,7 @@ protected void logConnectionClosingFailure(
114121
SQLException e,
115122
Logger.Level level,
116123
Supplier<String> messageSupplier) {
117-
if (logSettings.closingFailure) {
124+
if (logPreferences.isClosingFailure()) {
118125
var logger = Logger.getLogger(callerClassName);
119126
logger.info(messageSupplier.get(), e);
120127
} else {
@@ -130,11 +137,10 @@ protected void logStatementClosingFailure(
130137
SQLException e,
131138
Logger.Level level,
132139
Supplier<String> messageSupplier) {
133-
if (logSettings.closingFailure) {
140+
if (logPreferences.isClosingFailure()) {
134141
var logger = Logger.getLogger(callerClassName);
135142
logger.info(messageSupplier.get(), e);
136143
} else {
137-
138144
super.logStatementClosingFailure(
139145
callerClassName, callerMethodName, e, level, messageSupplier);
140146
}
@@ -147,7 +153,7 @@ protected void logResultSetClosingFailure(
147153
SQLException e,
148154
Logger.Level level,
149155
Supplier<String> messageSupplier) {
150-
if (logSettings.closingFailure) {
156+
if (logPreferences.isClosingFailure()) {
151157
var logger = Logger.getLogger(callerClassName);
152158
logger.info(messageSupplier.get(), e);
153159
} else {

runtime/src/main/java/org/seasar/doma/quarkus/runtime/DomaProducer.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class DomaProducer {
4444
private volatile int maxRows;
4545
private volatile int queryTimeout;
4646
private volatile String sqlLoadScript;
47-
private volatile DomaSettings.LogSettings logSettings;
47+
private volatile LogPreferences logPreferences;
4848

4949
public void setSqlFileRepository(SqlFileRepository sqlFileRepository) {
5050
this.sqlFileRepository = Objects.requireNonNull(sqlFileRepository);
@@ -90,8 +90,8 @@ public void setSqlLoadScript(String sqlLoadScript) {
9090
this.sqlLoadScript = sqlLoadScript;
9191
}
9292

93-
public void setLogSettings(DomaSettings.LogSettings logSettings) {
94-
this.logSettings = Objects.requireNonNull(logSettings);
93+
public void setLogPreferences(LogPreferences logPreferences) {
94+
this.logPreferences = Objects.requireNonNull(logPreferences);
9595
}
9696

9797
@ApplicationScoped
@@ -114,9 +114,8 @@ ScriptFileLoader scriptFileLoader() {
114114

115115
@ApplicationScoped
116116
@DefaultBean
117-
JdbcLogger jdbcLogger() {
118-
Objects.requireNonNull(logSettings);
119-
return new JBossJdbcLogger(logSettings);
117+
DomaLogger jdbcLogger(LogPreferences logPreferences) {
118+
return new DomaLogger(logPreferences);
120119
}
121120

122121
@ApplicationScoped
@@ -179,6 +178,12 @@ TransactionManager transactionManager() {
179178
return new UnsupportedTransactionManager();
180179
}
181180

181+
@Singleton
182+
@DefaultBean
183+
LogPreferences logPreferences() {
184+
return Objects.requireNonNull(logPreferences);
185+
}
186+
182187
@ApplicationScoped
183188
@DefaultBean
184189
DomaConfig dbConfig(

runtime/src/main/java/org/seasar/doma/quarkus/runtime/DomaRecorder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public BeanContainerListener configure(DomaSettings domaSettings, LaunchMode lau
4242
producer.setMaxRows(domaSettings.maxRows);
4343
producer.setQueryTimeout(domaSettings.queryTimeout);
4444
producer.setSqlLoadScript(domaSettings.sqlLoadScript);
45-
producer.setLogSettings(domaSettings.log);
45+
producer.setLogPreferences(domaSettings.log.asLogPreferences());
4646
};
4747
}
4848
}

runtime/src/main/java/org/seasar/doma/quarkus/runtime/DomaSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ public LogSettings(boolean sql, boolean dao, boolean closingFailure) {
3939
this.dao = dao;
4040
this.closingFailure = closingFailure;
4141
}
42+
43+
public LogPreferences asLogPreferences() {
44+
return new LogPreferences(sql, dao, closingFailure);
45+
}
4246
}
4347

4448
public enum DialectType {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.seasar.doma.quarkus.runtime;
2+
3+
public class LogPreferences {
4+
5+
private final boolean sql;
6+
private final boolean dao;
7+
private final boolean closingFailure;
8+
9+
public LogPreferences() {
10+
this(false, false, false);
11+
}
12+
13+
public LogPreferences(boolean sql, boolean dao, boolean closingFailure) {
14+
this.sql = sql;
15+
this.dao = dao;
16+
this.closingFailure = closingFailure;
17+
}
18+
19+
public boolean isSql() {
20+
return sql;
21+
}
22+
23+
public boolean isDao() {
24+
return dao;
25+
}
26+
27+
public boolean isClosingFailure() {
28+
return closingFailure;
29+
}
30+
}

0 commit comments

Comments
 (0)