SpringJDBC が発行する SQL をログに出力する

公開日: : 最終更新日:2014/01/26 SpringFramework ,

SpringJDBC が発行する SQL を確認する必要があったので Apache log4j 1.2 を使って出力してみました。

icatch-log_5578829409

目次

1. 背景

SpringJDBC をラップした OR マッパを自作してプライベートではアプリを作っています。

で、SpringJDBC がどんな insert 文を発行してくれるのか気になったのでログに出力してみました。

2. 動作環境

動作確認は以下のとおりです。

$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

Spring のバージョンは次の通りです。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

Log4j のバージョンは次の通りです。

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

3. XML ファイル

log4j.xml はこんな感じになります。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- アペンダ -->
    <!-- コンソール出力 -->
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/>
        </layout>
    </appender>
    <!-- ファイル出力 -->
    <appender name="FileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <param name="File" value="./log/hoge.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p %c %C#%M %m%n" />
        </layout>
    </appender>

    <!-- カテゴリ -->
    <!-- org.springframework.jdbc.core.JdbcTemplate パッケージに対するカテゴリ -->
    <category name="org.springframework.jdbc.core.JdbcTemplate" >
        <priority value ="debug" />
        <appender-ref ref="FileAppender" />
    </category>

    <!-- for all other loggers log only warn and above log messages -->
    <root>
        <priority value="WARN"/>
        <appender-ref ref="STDOUT" />
    </root> 
</log4j:configuration>

4. まとめ

ログライブラリは Log4j 2 Guide – Apache Log4j 2 とか Logback を使うのが最新っぽいようですが、特に変更する必要を感じてないので未だに Log4j を使ってます。

5. その他の Spring に関する記事

Spring に関する記事は次の通りです。
気になる記事があったらぜひチェックしてみてください!

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch-spring

spring framework を使ったデスクトップアプリ(standalone app)で context から getBean でオブジェクトを取得する

Java では珍しく Web ではなくデスクトップアプリの開発があり、そのプロジェクトで Sprin

記事を読む

icatch-java

Spring の設定ファイル applicationContext.xml の内容をプロパティファイルに切り出す

Spring の設定ファイルである applicationContext.xml に DataSou

記事を読む

icatch-cron_5578829409

Spring の Scheduled アノテーションを使った cron サンプル

Spring の @Scheduled アノテーションを使った cron サンプルプログラムを作成し

記事を読む

icatch-dbcp-219581864

Spring の DataSource に DBCP を使用する

Spring の DataSource に DBCP を設定してみたのでメモしておきます。 目

記事を読む

Financial injection

spring framework を使ったデスクトップアプリ(standalone app)で context から getBean でオブジェクトを取得する。@Autowired による紐付け

先日 spring framework を使ったデスクトップアプリ(standalone app)で

記事を読む

icatch-mysql_5578829409

MySQL の JDBC ドライバで設定しておきたい rewriteBatchedStatements プロパティ

データベースに MySQL を使った Java アプリのバッチ更新処理について非常に勉強になることが

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


4 − 一 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑