=============
SLF4J support
=============
.. contents::
:depth: 4
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.
.. code-block:: kotlin
dependencies {
implementation("org.seasar.doma:doma-slf4j:{{ doma_version }}")
// Use an arbitrary SLF4J binding
runtimeOnly("ch.qos.logback:logback-classic:{{ logback_classic_version }}")
}
Configuration
=============
Return an ``org.seasar.doma.slf4j.Slf4jJdbcLogger`` instance from
the ``getJdbcLogger`` method of your ``org.seasar.doma.jdbc.Config`` implementation class.
See also :ref:`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
-------
.. code-block:: xml
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
Log all SQL statements
----------------------
.. code-block:: xml
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
Log only SELECT statements
--------------------------
.. code-block:: xml
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n