springboot结合p6spy进行SQL监控

1.学习p6spy的相关链接

英文文档:Integrating P6Spy --- p6spy 3.9.2-SNAPSHOT documentationhttps://p6spy.readthedocs.io/en/latest/integration.html

github链接:GitHub - p6spy/p6spy: P6Spy is a framework that enables database data to be seamlessly intercepted and logged with no code changes to the application.https://github.com/p6spy/p6spy

mybatis-plus相关介绍:

SQL分析与打印 | MyBatis-Plus (baomidou.com)https://baomidou.com/guides/p6spy/

2.p6spy简介

2.1p6spy是什么

P6Spy 是一款开源的 Java 框架,是一个强大的数据库监控工具。可以帮助开发者监控并分析应用程序与数据库之间的交互行为。

2.2p6spy能做什么

  • 像往常一样正常使用mybatisplus或mybatisflex,p6spy在幕后帮我们记录所有的SQL及其执行时间。
  • 通过配置进行慢SQL检测
  • 自定义输出SQL相关性能的日志格式
  • 对日志输出进行控制,可输出到控制台或者文件系统

3.p6spy整合springboot

1.在pom.xml文件引入依赖:

XML 复制代码
   <dependency>
            <groupId>p6spy</groupId>
            <artifactId>p6spy</artifactId>
            <version>3.9.1</version>
        </dependency>

2.在application.yml文件修改数据库相关配置:

配置之前:

XML 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis-flex?
    username: root
    password: 123456

修改配置后:

XML 复制代码
spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:mysql://localhost:3306/mybatis-flex?
    username: root
    password: 123456

3.在application.yml同级创建spy.properties文件,内容如下:

XML 复制代码
module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 使用日志系统记录sql
appender=com.p6spy.engine.spy.appender.Slf4JLogger
## 配置记录Log例外
excludecategories=info,debug,result,batc,resultset
# 设置使用p6spy driver来做代理
deregisterdrivers=true
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动
driverlist=com.mysql.jdbc.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 秒
outagedetectioninterval=2
logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat
customLogMessageFormat=%(currentTime) | SQL耗时: %(executionTime) ms | 连接信息: %(category)-%(connectionId) | 执行语句: %(sql)

4.启动后查询数据库中的数据,控制台会自动打印内容如下:

相关推荐
●VON39 分钟前
鸿蒙Flutter实战:分类管理页BottomSheet CRUD
数据库·flutter·华为·harmonyos·鸿蒙
Cosolar41 分钟前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
方也_arkling1 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮1 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei112 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1122 小时前
web-第一次课后作业
java·开发语言·idea
企服AI产品测评局2 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
秋92 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本2 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
cfm_29142 小时前
Redis数据安全性解析
数据库·redis·缓存