如何在JHipster中更改hibernate日志记录级别?

时间:2015-03-18 16:17:52

标签: hibernate logging jhipster

我有一个用例,我在其中运行多个SQL查询和日志记录集,将每个查询写入控制台需要花费大量时间并在客户端调用时间。我尝试将pom.xml中dev配置文件的logback.loglevel属性设置为ERROR,但这没有帮助。

所以我的问题是:

  • 是否可以为单个REST呼叫配置日志级别?
  • 如何全局配置应用程序的日志级别?

3 个答案:

答案 0 :(得分:4)

将spring.jpa.show_sql:https://github.com/jhipster/jhipster-sample-app/blob/master/src/main/resources/config/application-dev.yml中的true更改为'false'您要查找的是什么?

答案 1 :(得分:1)

除了更改spring.jpa.show_sql文件中的属性application*.yml之外,您还可以尝试更改Logback的配置:

在文件src/main/resources/logback-spring.xmlsrc/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>

答案 2 :(得分:-1)

您需要更改以下两个文件:

<强> application.yml

spring:

...

jpa:

   ...
   show_sql: true
   ...

<强>的logback-spring.xml

<logger name="org.hibernate.SQL" level="DEBUG">;
祝你好运。