Cep*_*pr0 4 java sql logging spring-data-jpa spring-boot
要查看发送到数据库的 SQL 查询,我们通常使用showSql参数:
spring.jpa.showSql=true
Run Code Online (Sandbox Code Playgroud)
它允许我们看到语句体而不是它的参数:
insert into master (id, version, name) values (null, ?, ?)
Run Code Online (Sandbox Code Playgroud)
尤其是我们没有看到查询的结果。
有没有办法在应用程序日志中查看 SQL 语句、其参数和结果?
使用log4jdbc-spring-boot-starter,我们可以轻松地在 Spring Boot/Spring Data JPA 项目中记录所有 JDBC 语句、它们的参数和结果。
例如,当我们在应用程序中执行一些 JPQL 查询时:
select u from User u where u.name = 'john'
Run Code Online (Sandbox Code Playgroud)
然后我们在应用程序日志中看到以下带有参数的 SQL 查询:
select ... from users users0_ where users0_.name='john'
Run Code Online (Sandbox Code Playgroud)
其结果以表格形式显示:
|---|---------|
|id |name |
|---|---------|
|1 |john |
|---|---------|
Run Code Online (Sandbox Code Playgroud)
要使用这个 starter,我们必须将它的依赖项添加到我们的项目中:
<dependency>
<groupId>com.integralblue</groupId>
<artifactId>log4jdbc-spring-boot-starter</artifactId>
<version>1.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
并将这些参数添加到application.properties:
logging.level.jdbc.resultsettable=info
logging.level.jdbc.sqltiming=info
logging.level.jdbc.sqlonly=fatal
logging.level.jdbc.audit=fatal
logging.level.jdbc.resultset=fatal
logging.level.jdbc.connection=fatal
Run Code Online (Sandbox Code Playgroud)
此外,我们可以添加这些log4jdbc参数以在一行中获取输出:
log4jdbc.dump.sql.addsemicolon=true
log4jdbc.dump.sql.maxlinelength=0
log4jdbc.trim.sql.extrablanklines=false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3851 次 |
| 最近记录: |