跳到主要内容

3.6 日志调试

开启日志

dlz:
db:
log:
show-run-sql: true # 打印可执行 SQL
show-caller: true # 打印调用代码位置
show-result: false # 打印查询结果(有性能影响)

日志输出格式

[SQL] SELECT * FROM user WHERE id = 1 AND is_deleted = 0
[耗时] 12ms
[调用] caller:UserController.java:15

日志特点:

  1. 完整 SQL:参数已填充,可直接复制执行
  2. 执行耗时:精确到毫秒
  3. 代码位置:IDE 中可点击跳转到调用行

慢 SQL

dlz:
db:
log:
show-run-sql: true
slow-sql-threshold: 1000 # 慢 SQL 阈值(毫秒),0 表示不启用

超过阈值的 SQL 会以 WARN 级别输出,方便定位性能瓶颈。

示例输出:

WARN [main] c.d.db.util.DbLogUtil - query 1250ms sql:SELECT * FROM user WHERE status = 1

使用建议:

  • 开发环境:设置为 0(不启用)或较大值(如 5000ms)
  • 测试环境:设置为 1000ms,发现潜在性能问题
  • 生产环境:设置为 500-1000ms,及时发现慢查询