親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

Spring Bootで実行SQLのログを取得する方法


アプリケーション開発でのSQLログ

アプリケーションの開発をしている時、実行されたSQLのログを参照したい場面がありますよね。
想定外のSQLが実行されていないか確認したり、ボトルネックとなっているSQLを確認したりなど。
Spring BootではそのようなSQLの実行ログを簡単に見ることができます。

今回の方法は、Spring Data JPAでデータベースへのアクセスをするものとします。

application.ymlでの設定

手順としては、application.ymlに以下を書き込むだけです。

logging:
  level:
    org:
      hibernate:
        SQL: DEBUG
        type:
          descriptor:
            sql:
              BasicBinder: TRACE

Spring Data JPAは内部的にhibernateで実装されているために、hibernateのログ設定になるんですね。
あとは通常通りサーバを起動させればOKです。
実際に処理を動かしてみると、以下のようなログが出力されることでしょう。

2018-10-16 17:59:53.321 DEBUG 14383 --- [nio-8080-exec-2] org.hibernate.SQL                        : SELECT ...
2018-10-16 17:59:53.321 TRACE 14383 --- [nio-8080-exec-2] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [INTEGER] - [1]

とても簡単ですよね。
O/Rマッパーでのオブジェクトへのアクセスで、実際にどのようなクエリが実行されているのかを確認したい場合などに設定してみてください。


Fire TV Stick

Fire TV Stick

新登場  Fire TV Stick 4K - Alexa対応音声認識リモコン付属

新登場 Fire TV Stick 4K - Alexa対応音声認識リモコン付属

Fire HD 10 タブレット (10インチHDディスプレイ) 64GB

Fire HD 10 タブレット (10インチHDディスプレイ) 64GB