首页 > 解决方案 > 使用弹簧数据启用休眠日志记录?

问题描述

我正在尝试在我的 springboot 和 springdata 应用程序中设置 SQL 语句的休眠日志记录。

我在 application.properties 文件中设置了以下属性:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

但不知何故,他们没有被捡起,也没有 sql 日志来。也尝试过设置 spring.jpa.show-sql 属性,但似乎不起作用。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>in.abcd</groupId>
        <artifactId>spring-boot-commons</artifactId>
        <version>1.0.10</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.vladmihalcea</groupId>
        <artifactId>hibernate-types-52</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
              <exclusion>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-logging</artifactId>
              </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <version>2.1.6.RELEASE</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>jul-to-slf4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-to-slf4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.1.4.RELEASE</version>
    </dependency>

</dependencies>

标签: java

解决方案


使用记录器就足够了

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

或者,使用spring.jpa属性,您可以像这样使用它们:

spring.jpa.show-sql = true

此外,为了美化或漂亮地打印 SQL,我们可以添加:

spring.jpa.properties.hibernate.format_sql=true

推荐阅读