sql - Spring Boot:禁用 DDL 日志记录
问题描述
我在测试环境中设置了spring.jpa.hibernate.ddl-auto=create-drop
以及。spring.jpa.show-sql=true
我想在日志中查看 SQL 语句,但只有 DML 语句。是否可以禁用 DDL 语句日志记录(create table
、、drop table
等)?
解决方案
不,那是不可能的。您可以通过查看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);
推荐阅读
- java - 配置映射以连接字符串
- html - 为什么我的网页表单页面没有检测到 CSS 文件?
- sql-server - 如何在 MS SQL Server 中选择 1 周间隔后的 2018 年 7 月日期
- python - Python 中的均值过滤(手动)
- java - 识别 java POJO 类中更改的字段
- vba - 加入具有相同字段的各种表,但表名中的前缀发生变化
- r - 开发连续时间马尔可夫链模型来模拟 R 中鱼身上寄生虫的分布(计数)
- stream - 当我使用 getUserMedia(... chromeMediaSource: 'desktop') 时,如何将我的 Electron 应用程序保持在前台?
- android - xml中的Android数据绑定src ImageView
- c# - 在 Xamarin.Forms 中克隆 repo 后的问题