【发布时间】:2021-09-17 21:40:12
【问题描述】:
我想在 UAT 环境中打印特定的休眠查询。但是,我不想为所有查询启用休眠日志记录,因为它会开始生成大量日志。 有没有一种方法可以在我要打印的查询之前通过 java 代码启用休眠查询日志记录,然后立即禁用它?请注意,我使用的是 Spring 数据 Jpa 存储库。
【问题讨论】:
标签: java spring hibernate spring-data-jpa batch-processing
我想在 UAT 环境中打印特定的休眠查询。但是,我不想为所有查询启用休眠日志记录,因为它会开始生成大量日志。 有没有一种方法可以在我要打印的查询之前通过 java 代码启用休眠查询日志记录,然后立即禁用它?请注意,我使用的是 Spring 数据 Jpa 存储库。
【问题讨论】:
标签: java spring hibernate spring-data-jpa batch-processing
在 logback 的帮助下可以进行自定义日志记录,但不确定是否有助于记录特定的 SQL 日志。
使用此链接-https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.logging
【讨论】:
这取决于您使用的日志库。
我认为 Spring 使用 SLF4J 和 logback,因此应该可以使用以下方法:
LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.hibernate.SQL").setLevel(Level.DEBUG);
然后设置
loggerContext.getLogger("org.hibernate.SQL").setLevel(Level.ERROR);
【讨论】: