我想把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
登录到标准输出
添加到application.properties
### To enable
spring.jpa.show-sql=true
### To make the printing SQL beautify
spring.jpa.properties.hibernate.format_sql=true
这是打印SQL查询的最简单方法,但它不会记录准备好的语句的参数。
不推荐使用,因为它不是优化的日志框架。
使用日志框架
添加到application.properties
### Logs the SQL queries
logging.level.org.hibernate.SQL=DEBUG
### Logs the prepared statement parameters
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
### To make the printing SQL beautify
spring.jpa.properties.hibernate.format_sql=true
通过指定上述属性,日志条目将被发送到已配置的日志追加器,例如log-back或Log4j。