Spring Boot ログ出力

SQLログ出力内容をカスタマイズしてみた

今回は、SQLログ出力内容をカスタマイズし、SQLの実行時間や呼出メソッドをSQLログに出力してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

log4j2のファイルにymlを利用してみた前回は、log4j2のファイルにxmlファイルを利用していたが、今回はlog4j2のファイルにymlを利用してみたので、そのサンプルプロ...

サンプルプログラムの内容

今回のサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記赤枠が前提条件のプログラムと変更になった箇所で「DemoSqlInvocation.java」が新規で作成したプログラムで、「build.gradle」「log4j2.yml」は変更したプログラムとなる。
また、上図には無いが、前提条件のプログラムに入っていた「mybatis-config.xml」は不要なので、今回削除している。

build.gradleの内容は以下の通りで、「Apache Common JEXL」を利用するための設定を追加している。なお、「Apache Common JEXL」は、SQLの埋め込みパラメータ値を取得するために利用している。

また、application.ymlの内容は以下の通りで、log4j2でSQLログを出力するための「mybatis-config.xml」を読み込む設定を削除している。



また、DemoSqlInvocation.javaの内容は以下の通りで、SQLの実行時間・呼出メソッド・SQLログを出力するようにしている。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-custom-sqllog/demo



サンプルプログラムの実行結果

1) 検索し一覧を表示する場合の、画面とログ出力内容は以下の通り。
<画面>
実行結果_画面_検索_1

実行結果_画面_検索_2

<ログ>
実行結果_検索_ログ

2) データ更新を行う場合の、画面とログ出力内容は以下の通り。
<画面>
実行結果_画面_更新_1

実行結果_画面_更新_2 実行結果_画面_更新_3 実行結果_画面_更新_4

<ログ>
実行結果_更新_ログ

3) データ削除を行う場合の、画面とログ出力内容は以下の通り。
<画面>
実行結果_画面_削除_1

実行結果_画面_削除_2 実行結果_画面_削除_3

<ログ>
実行結果_ログ_削除

4) データ追加を行う場合の、画面とログ出力内容は以下の通り。
<画面>
実行結果_画面_追加_1

実行結果_画面_追加_2 実行結果_画面_追加_3 実行結果_画面_追加_4

<ログ>
実行結果_追加_ログ

要点まとめ

  • SQL実行時間をログ出力するようにするには、MyBatisのログ出力内容をカスタマイズすればよい。