googlecode.log4jdbc慢sql日志,格式化sql

前言

无论使用原生JDBC、mybatis还是hibernate,使用log4j等日志框架可以看到生成的SQL,但是占位符和参数总是分开打印的,不便于分析,显示如下的效果:
在这里插入图片描述
在这里插入图片描述
googlecode Log4jdbc 是一个开源 SQL 日志组件,它使用代理模式实现对常用的 JDBC Driver( Oracle , Derby , MySQL , PostgreSQL , H2 ,等)操作的拦截,记录真实 SQL ,可以将占位符与参数全部合并在一起显示,方便直接拷贝 SQL 在 MySQL 等客户端直接执行,加快调试速度,还有个类似功能的组件bgee.log4jdbc-log4j2。

版本

  • springboot
    2.6.3
  • spring-cloud-starter-alibaba
    2021.0.1.0
  • mybatis-plus-boot-starter
    3.4.3.4
  • 数据库驱动
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
  <version>2.6.3</version>
</dependency>

添加log4jdbc依赖

<dependency>
	<groupId>com.googlecode.log4jdbc</groupId>
	<artifactId>log4jdbc</artifactId>
	<scope>runtime</scope>
	<version>1.2</version>
</dependency>

替换jdbc驱动

spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
#    driver-class-name: com.mysql.cj.jdbc.Driver
    driver-class-name: net.sf.log4jdbc.DriverSpy
    username: root
    password: 123456
#    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    url: jdbc:log4jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    hikari:
      minimum-idle: 1
      maximum-pool-size: 5
      auto-commit: true
      read-only: false
      connection-init-sql: SELECT 1 FROM DUAL
      connection-test-query: SELECT 1 FROM DUAL
      pool-name: HikariCP
      idle-timeout: 30000
      connection-timeout: 30000
      max-lifetime: 300000
    min-idle: 2

在项目resources目录下添加log4jdbc.properties文件

# 关闭自动加载受欢迎驱动
log4jdbc.auto.load.popular.drivers=false
log4jdbc.drivers=com.mysql.cj.jdbc.Driver
#毫秒值.执行时间超过该值的SQL语句将被记录为error级别
log4jdbc.sqltiming.error.threshold=3000
#毫秒值.执行时间超过该值的SQL语句将被记录为warn级别
log4jdbc.sqltiming.warn.threshold=2000
#修剪已记录的SOL
log4jdbc.trim.sql=true

更多配置可以观察源码
在这里插入图片描述

效果图

在这里插入图片描述

相关推荐

  1. sql jdbc测试

    2024-01-08 00:10:01       33 阅读
  2. 诊断SQL根源

    2024-01-08 00:10:01       41 阅读
  3. SQL问题排查

    2024-01-08 00:10:01       31 阅读
  4. MySQL纪录SQL

    2024-01-08 00:10:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 00:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 00:10:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 00:10:01       82 阅读
  4. Python语言-面向对象

    2024-01-08 00:10:01       91 阅读

热门阅读

  1. leetcode-字母异位词分组

    2024-01-08 00:10:01       56 阅读
  2. 智能寻迹避障机器人设计(第一章)

    2024-01-08 00:10:01       43 阅读
  3. 吉林大学 分布计算系统 ppt文字版

    2024-01-08 00:10:01       39 阅读
  4. 【LeetCode周赛】第379场周赛

    2024-01-08 00:10:01       57 阅读
  5. elk日志分析系统

    2024-01-08 00:10:01       66 阅读
  6. yolov8 PTQ和QAT量化实战(源码详解)

    2024-01-08 00:10:01       83 阅读
  7. linux 终端获取键值

    2024-01-08 00:10:01       60 阅读
  8. R语言-受限三样次条回归RCS-基于logistic

    2024-01-08 00:10:01       57 阅读