当前位置: 首页 > news >正文

p6spy和p6spy-spring-boot-starter的SpringBoot3集成配置

官方文档参考:SQL分析与打印 | MyBatis-Plus

p6spy-spring-boot-starter集成SpringBoot3

引入依赖

<dependency><groupId>com.github.gavlyukovskiy</groupId><artifactId>p6spy-spring-boot-starter</artifactId><version>1.9.0</version>
</dependency>

禁用mybatis-plus日志输出

mybatis-plus:configuration:# 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl# 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl# 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpllogImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl

数据库准备

spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx.xxx:3306/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=trueusername: xxxxpassword: xxxx

p6spy的yml配置

decorator:datasource:p6spy:# 使用默认的控制台输出logging: sysout# 日志格式log-format: "time:%(current_time) | executionTime:%(executionTime) ms | sql:%(sql)"

控制台结果展示

2025-08-11 12:02:30 [http-nio-8080-exec-1] INFO  com.zaxxer.hikari.pool.HikariPool- HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@61f586cb
2025-08-11 12:02:30 [http-nio-8080-exec-1] INFO  com.zaxxer.hikari.HikariDataSource- HikariPool-1 - Start completed.
time:%(current_time) | executionTime:35 ms | sql:SELECT  user_id  FROM sys_user

p6spy集成SpringBoot3

引入依赖

<dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>3.9.1</version>
</dependency>

禁用mybatis-plus日志输出

mybatis-plus:configuration:# 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl# 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl# 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpllogImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl

数据库准备

spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.p6spy.engine.spy.P6SpyDriver  # 使用p6spy代理驱动url: jdbc:p6spy:mysql://xxx.xxx.xxx.xxx:3306/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=trueusername: xxxxpassword: xxxx

配置spy.properties(位于资源文件夹resources下)

# 配置 P6Spy 模块列表,集成 MyBatis-Plus 日志工厂和超时检测
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory# 日志消息格式,使用 MyBatis-Plus 提供的格式化器
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger# 日志输出方式:使用 MyBatis-Plus 标准输出器(直接打印到控制台)
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 可选:使用 Slf4J 输出(需配合项目日志框架,如 Logback/Log4j2)
# appender=com.p6spy.engine.spy.appender.Slf4JLogger# 是否在日志前添加前缀
useprefix=true# 排除的日志类别(不输出这些类型的日志)
excludecategories=info,debug,result,commit,resultset# 日期时间格式
dateformat=yyyy-MM-dd HH:mm:ss# 数据库时间戳格式
databaseDialectTimestampFormat=yyyy-MM-dd HH:mm:ss# 真实数据库驱动类(P6Spy 会代理此驱动)
driverlist=com.mysql.cj.jdbc.Driver# 是否启用 SQL 执行超时检测
outagedetection=true# 超时检测间隔(单位:秒)
outagedetectioninterval=2# 是否启用 SQL 过滤功能
filter=true# 需要排除的 SQL 语句(不记录此 SQL 的日志)
exclude=SELECT 1

控制台结果展示

2025-08-11 12:26:10 [http-nio-8080-exec-1] INFO  com.zaxxer.hikari.pool.HikariPool- HikariPool-1 - Added connection com.p6spy.engine.wrapper.ConnectionWrapper@57f7f158
2025-08-11 12:26:10 [http-nio-8080-exec-1] INFO  com.zaxxer.hikari.HikariDataSource- HikariPool-1 - Start completed.Consume Time:36 ms 2025-08-11 12:26:10Execute SQL:SELECT user_id FROM sys_user
http://www.dtcms.com/a/326096.html

相关文章:

  • 高性能Web服务器
  • java基础概念(二)----变量(附练习题)
  • Go 语言三大核心数据结构深度解析:数组、切片(Slice)与映射(Map)
  • Unity插件DOTween使用
  • 【GPT入门】第45课 无梯子,linux/win下载huggingface模型方法
  • 如何避免团队文件同步过程中版本信息的丢失?
  • GAI 与 Tesla 机器人的具体联动机制
  • 变频器与伺服系统的工作原理,干扰来源及治理方式
  • 软件测试关于搜索方面的测试用例
  • [AI 生成] kafka 面试题
  • 是否有必要使用 Oracle 向量数据库?
  • 【图像处理基石】UE输出渲染视频,有哪些画质相关的维度和标准可以参考?
  • OmniHuman:字节推出的AI项目,支持单张照片生成逼真全身动态视频
  • 不同FPGA开发板系统移植步骤
  • 《C++中 type_traits 的深入解析与应用》
  • 【Docker实战进阶】Docker 实战命令大全
  • “底层闭源 + Lua 脚本” 开发模式
  • 缺省路由的内容
  • 基于51单片机指纹识别管理门禁密码锁系统设计
  • “鱼书”深度学习进阶笔记(3)第四章
  • Spring Boot文件下载功能实现详解
  • Spring Boot 2.6.0+ 循环依赖问题及解决方案
  • C#高级语法_泛型
  • ClickHouse列式数据库的使用场景与基本优化手段
  • Jmeter使用第二节-接口测试(Mac版)
  • ​费马小定理​
  • jmeter 设置随机数
  • 爬虫与数据分析结合:中国大学排名案例学习报告
  • 【FAQ】Win11创建资源不足绕开微软账号登录
  • 在macOS上扫描192.168.1.0/24子网的所有IP地址