1. ksby

    Posted

    ksby
Changes in title
+Spring Boot で log4jdbc-log4j2 を使用してSQLを出力する
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,51 @@
+Spring Boot で log4jdbc-log4j2 を使用してSQLを出力するための手順です。開発時に実行されているSQLを確認したい時に使えると思います。
+
+@Configurationなクラスで dataSource の Bean を定義する必要はありません。
+http://code.google.com/p/log4jdbc-log4j2/ を参照しました。
+
+pom.xml に log4jdbc-log4j2-jdbc4.1 を追加します。
+
+```pom.xml
+ <dependency>
+ <groupId>org.bgee.log4jdbc-log4j2</groupId>
+ <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
+ <version>1.16</version>
+ </dependency>
+```
+
+application.properties の設定を変更します。urlのjdbcの後に **:log4jdbc** を追加し、driverClassName を **net.sf.log4jdbc.sql.jdbcapi.DriverSpy** に変更します。
+
+```(変更前)application.properties
+spring.datasource.url = jdbc:mysql://localhost/world
+spring.datasource.driverClassName = com.mysql.jdbc.Driver
+```
+
+```(変更後)application.properties
+spring.datasource.url = jdbc:log4jdbc:mysql://localhost/world
+spring.datasource.driverClassName = net.sf.log4jdbc.sql.jdbcapi.DriverSpy
+```
+
+/resources の下に log4jdbc.log4j2.properties を作成します。
+
+```log4jdbc.log4j2.properties
+log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
+```
+
+/resources の下に logback.xml を作成します。
+
+```logback.xml
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <include resource="org/springframework/boot/logging/logback/base.xml"/>
+
+ <!-- log4jdbc-log4j2 -->
+ <logger name="jdbc.sqlonly" level="DEBUG"/>
+ <logger name="jdbc.sqltiming" level="INFO"/>
+ <logger name="jdbc.audit" level="INFO"/>
+ <logger name="jdbc.resultset" level="ERROR"/>
+ <logger name="jdbc.resultsettable" level="ERROR"/>
+ <logger name="jdbc.connection" level="DEBUG"/>
+</configuration>
+```
+
+Spring Data JPA でも MyBatis-Spring でもSQLが出力されます。