我想把SQL语句记录到一个文件中。

我在application.properties中有以下属性:

spring.datasource.url=...
spring.datasource.username=user
spring.datasource.password=1234
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

security.ignored=true
security.basic.enabled=false

logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.file=c:/temp/my-log/app.log

当我运行程序时,

cmd> mvn spring-boot:run

我可以在控制台中看到SQL语句,但它们没有出现在app.log中。该文件只包含Spring的基本日志。

我应该怎么做才能在日志文件中看到SQL语句?


当前回答

在Spring引导中,我们可以使用两种方法记录SQL语句: 1:使用记录仪 2:标准方法


为日志记录器 您应该将这一行添加到应用程序中。属性文件:

logging.level.org.hibernate.SQL=DEBUG

标准方法 你应该在应用程序中添加这些行。属性文件:

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

其他回答

请使用:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
spring.jpa.show-sql=true

根据文档,它是:

spring.jpa.show-sql=true # Enable logging of SQL statements.

这适用于我(YAML):

spring:
  jpa:
    properties:
      hibernate:
        show_sql: true
        format_sql: true
logging:
  level:
    org:
      hibernate:
        type: trace

对于SQL Server驱动程序(Microsoft SQL Server JDBC driver),请尝试使用:

logging.level.com.microsoft.sqlserver.jdbc=debug

在你的应用中。属性文件。

我个人的偏好是设置:

logging.level.com.microsoft.sqlserver.jdbc=info
logging.level.com.microsoft.sqlserver.jdbc.internals=debug

你可以参考以下链接:

跟踪驱动程序操作 “如何”指南,7。日志记录

在Spring引导中,我们可以使用两种方法记录SQL语句: 1:使用记录仪 2:标准方法


为日志记录器 您应该将这一行添加到应用程序中。属性文件:

logging.level.org.hibernate.SQL=DEBUG

标准方法 你应该在应用程序中添加这些行。属性文件:

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true