Spring Boot:禁用 DDL 日志记录

时间:2021-07-01 14:51:39

标签: sql spring spring-boot hibernate logging

我在测试环境中设置了 spring.jpa.hibernate.ddl-auto=create-dropspring.jpa.show-sql=true。我想在日志中查看 SQL 语句,但只查看 DML 语句。是否可以禁用 DDL 语句日志记录(create tabledrop table 等)?

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。您可以通过查看 org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase#accept 来亲自了解,它是执行日志记录并随后执行语句的代码。您唯一能做的就是在启动时将日志级别设置为 OFF,然后在启动后将其设置为 DEBUG,但是如何做到这一点取决于您使用的日志记录库。

我认为 Spring 使用 SLF4J 和 logback,因此应该可以使用以下内容:

LoggerContext loggerContext = (LoggerContext)LoggerFactory.getILoggerFactory();
loggerContext.getLogger("org.hibernate.SQL").setLevel(Level.DEBUG);