Liferay 7でSQLクエリを出力する - Liferay 7でSQLクエリを出力する - aegif Labo Blog Liferay
null Liferay 7でSQLクエリを出力する
機能
2020.12.18
こんにちは。おおたにです。
Liferayでデータベース周りの問題が発生した場合に、Liferayからデータベースに対してどのようなクエリが発行されているか知りたい場合があります。パフォーマンス関連であればデータベース側でスロークエリログを取得するのも手ですが、今回はLiferayが発行するクエリを出力する方法を紹介します。
標準出力に出力する
標準出力にクエリを出力するためには、<LIFERAY_HOME>/portal-ext.properties
に以下の設定を追加してLiferayを再起動します。
hibernate.show_sql=true
以上です。とても簡単ですね!
Liferayログに出力する
先ほどの設定でTomcatログ(<LIFERAY_HOME>/tomcat-x.x.xx/logs/catalina.out
)にクエリが出力されるようになればよいのですが、Tomcatがコンソール起動している場合は標準出力がコンソールに流れてしまうため、ログにクエリが記録されません。そのような場合は、先の設定に加えて以下の設定を行います。
- Liferayに管理者でログイン
- コントロールパネル -> 設定 -> サーバ管理 -> ログレベル -> カテゴリを追加する に移動
- ロガー名 :
org.hibernate.SQL
、ログレベル :DEBUG
として保存をクリック
これでLiferayログ(<LIFERAY_HOME>/logs/liferay.yyyy-mm-dd.log
)にクエリが記録されるようになります。設定を保存すると即時に反映されるので、Liferay再起動は不要です。一方でLiferayを再起動してしまうとログレベルが元に戻ってしまうため再起動の度に設定が必要です。
今回の紹介は以上です。Liferayが発行するクエリを知りたい場合には是非参考にしてください。
RANKING
2021.1.08
2020.12.01
2020.10.30
2020.12.28
2020.12.18
Liferay DXP 7.3の新機能であるアプリビルダー(App Builder)をご紹介!
2020年10月にリリースされたLiferay DXP 7.3の新機能について紹介します
Liferay 7ではデフォルトでレスポンスヘッダにプロダクト情報が出力されるため、それを削除する方法をご紹介
Liferay7.3から導入されたLiferay API Explorerを紹介します。
Liferay 7で実際にデータベースに対して発行されているクエリを出力する方法をご紹介