SLF4J support

Overview

Doma uses Java Util Logging as its underlying logging framework, but you can easily replace it with SLF4J.

Gradle

Doma provides the doma-slf4j artifact to integrate with SLF4J.

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

Configuration

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

See also Logger.

Loggers

The doma-slf4j module provides the following loggers:

  • 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

For more information, see the source code.

Examples

Below are some sample 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>