SLF4J サポート
概要
Doma は基礎となるロギングフレームワークとして java util ロギングを使用しますが、これを SLF4J に簡単に置き換えることができます。
Gradle
Doma は、SLF4J を適応させるための doma-slf4j アーティファクトを提供します。
dependencies {
implementation("org.seasar.doma:doma-slf4j:3.0.1")
// Use an arbitrary SLF4J binding
runtimeOnly("ch.qos.logback:logback-classic:1.5.7")
}
設定
org.seasar.doma.slf4j.Slf4jJdbcLogger
インスタンスを org.seasar.doma.jdbc.Config
の実装クラスの getJdbcLogger
メソッドから返してください。
Logger も参照してください。
ロガー
doma-slf4j は、次のようないくつかのロガーを提供します。
org.seasar.doma.jdbc.LogKind.DAO
org.seasar.doma.jdbc.LogKind.FAILURE
org.seasar.doma.jdbc.LogKind.LOCAL_TRANSACTION
org.seasar.doma.jdbc.LogKind.SKIP.STATE_UNCHANGED
org.seasar.doma.jdbc.LogKind.SKIP.BATCH_TARGET_NONEXISTENT
org.seasar.doma.jdbc.LogKind.SQL.BATCH_DELETE
org.seasar.doma.jdbc.LogKind.SQL.BATCH_INSERT
org.seasar.doma.jdbc.LogKind.SQL.BATCH_UPDATE
org.seasar.doma.jdbc.LogKind.SQL.DELETE
org.seasar.doma.jdbc.LogKind.SQL.FUNCTION
org.seasar.doma.jdbc.LogKind.SQL.INSERT
org.seasar.doma.jdbc.LogKind.SQL.PROCEDURE
org.seasar.doma.jdbc.LogKind.SQL.SCRIPT
org.seasar.doma.jdbc.LogKind.SQL.SELECT
org.seasar.doma.jdbc.LogKind.SQL.SQL_PROCESSOR
org.seasar.doma.jdbc.LogKind.SQL.UPDATE
詳細については、 ソース コード を参照してください。
例
以下に、logback の設定例を示します。
すべてログに記録する
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.seasar.doma.jdbc.LogKind" level="debug"/>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
すべての SQL ステートメントをログに記録する
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.seasar.doma.jdbc.LogKind.SQL" level="debug"/>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
SELECT ステートメントのみをログに記録する
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.seasar.doma.jdbc.LogKind.SQL.SELECT" level="debug"/>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>