如何通過Log4J 2檢視Hibernate 的SQL輸入引數?
在沒有看到和檢查背後執行的SQL以及相應的繫結輸入引數的情況下,我們很容易引入可能長時間存在的效能損失(例如N + 1)。
如果您的專案中已經有Log4J 2,則下面介紹的解決方案非常有用。如果沒有,最好依賴於TRACE或log4jdbc(謝謝謝爾蓋·波茲南斯基的建議和SO 解決方式)。這兩種方法都不需要排除Spring Boot的預設日誌記錄。TRACE例子可以發現在這裡 ,例子log4jdbc在這裡 。
基於Log4J 2的描述:在開發應用程式時,維護對於檢視和檢查預準備的語句繫結引數值而不是假設它們很有用。一種方法是通過Log4J 2記錄器設定。
關鍵點:
- 對於Maven,在中pom.xml,排除Spring Boot的預設日誌記錄(上面的讀取更新)
- 對於Maven,在中pom.xml,新增Log4j 2依賴項
- 在log4j2.xml, 新增以下內容:
<Logger name="org.hibernate.type.descriptor.sql" level="trace"/>
原始碼可以在這裡 找到