我已经设定
logging.level.org.hibernate.type.descriptor.sql=trace
但它将每个变量绑定记录为单独的行,每个表平均有 50-60 列,这使得日志文件更难理解。
有没有办法配置记录器,以便所有休眠查询都使用其已经绑定的值打印。(在日志文件中只需要一行。)
我已经设定
logging.level.org.hibernate.type.descriptor.sql=trace
但它将每个变量绑定记录为单独的行,每个表平均有 50-60 列,这使得日志文件更难理解。
有没有办法配置记录器,以便所有休眠查询都使用其已经绑定的值打印。(在日志文件中只需要一行。)
据我所知,使用有界值记录 SQL 曾经是 Hibernate(2.x 或 3.x?)中的一项功能,但后来被删除了。
一种解决方法是使用 JdbcDsLog 之类的实用程序(例如https://github.com/adrianshum/jdbcdslog)
免责声明:我是上述 JdbcDsLog 分支的维护者
我发现最好的方法是使用任一数据源代理。这些在每个 db 命中之前被调用。我们可以设置我们的逻辑来记录查询。
数据源代理的一个已知示例是 p6spy。