我有一个用例,其中我运行了多个 SQL 查询和日志记录集,将每个查询写入控制台需要花费大量时间并使客户端的调用超时。我尝试将 pom.xml 中开发配置文件的 logback.loglevel 属性设置为 ERROR ,但这没有帮助。
所以我的问题是:
最佳答案
除了更改属性spring.jpa.show_sql
在 application*.yml
文件,您也可以尝试更改 Logback 的配置:
在文件中 src/main/resources/logback-spring.xml
和 src/test/resources/logback-test.xml
您可以添加以下配置:
要获取详细的日志 SQL 信息,包括 SQL 参数值:
<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.type" level="TRACE"/>
使 SQL 不那么健谈:
<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.type" level="TRACE"/>
作为一个额外的好处,在 logback 配置文件中明确声明这些记录器将使 Hibernate 的日志记录使用 Logback 的布局配置,例如显示执行线程的时间和名称。
spring.jpa.show_sql
设置为 true
优先于 Logback 配置 - 包括它没有时间和没有执行线程名称的不太有用的布局。所以为了我自己的目的,我更喜欢设置 spring.jpa.show_sql
至 false
而是配置 logback-spring.xml
(无论如何都应该放置日志配置方面)。在那里,您可以设置 Spring profile-specific logging levels :<springProfile name="dev, staging">
<logger name="org.hibernate.SQL" level="DEBUG"/> <!-- set org.hibernate.SQL to DEBUG to see SQL statements -->
<logger name="org.hibernate.type" level="INFO"/> <!-- set org.hibernate.type to TRACE to see SQL parameters -->
</springProfile>
<springProfile name="prod">
<logger name="org.hibernate.SQL" level="INFO"/> <!-- set org.hibernate.SQL to DEBUG to see SQL statements -->
<logger name="org.hibernate.type" level="INFO"/> <!-- set org.hibernate.type to TRACE to see SQL parameters -->
</springProfile>
关于hibernate - 如何在 JHipster 中更改 hibernate 日志记录级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29127233/