如何通过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"/>

源代码可以在这里找到