SLF4J support

Overview

Doma uses java util logging as underling logging framework, but you can replace it with SLF4J easily.

Gradle

Doma provides the doma-slf4j artifact to adapt SLF4J.

dependencies {
    implementation("org.seasar.doma:doma-slf4j:2.50.0")
    // Use an arbitrary SLF4J binding
    runtimeOnly("ch.qos.logback:logback-classic:1.2.3")
}

Configuration

Return a org.seasar.doma.slf4j.Slf4jJdbcLogger instance from the getJdbcLogger method of the org.seasar.doma.jdbc.Config implementation class.

See also Logger.

Loggers

doma-slf4j provides several loggers as follows:

  • 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

See source code for more information. It’s simple.

Examples

Below, we show you logback configurations.

Log all

<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>

Log all SQL statements

<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>

Log only SELECT statements

<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>