=============
SLF4J support
=============
.. contents::
:depth: 3
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.
.. code-block:: xml
dependencies {
implementation("org.seasar.doma:doma-slf4j:3.0.1")
// Use an arbitrary SLF4J binding
runtimeOnly("ch.qos.logback:logback-classic:1.5.7")
}
Configuration
=============
Return a ``org.seasar.doma.slf4j.Slf4jJdbcLogger`` instance from
the ``getJdbcLogger`` method of the ``org.seasar.doma.jdbc.Config`` implementation class.
See also :ref:`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
-------
.. 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