SpringBoot【集成p6spy】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)

1.简单说明

p6spy 类似于 druid 可以拦截 SQL 可以用于项目调试,直接引入 p6spy 的博文已经很多了,这里主要是介绍一下 springboot 使用 p6spy-spring-boot-starter 如何进行配置。

2.核心依赖

xml 复制代码
<dependency>
	<groupId>com.github.gavlyukovskiy</groupId>
	<artifactId>p6spy-spring-boot-starter</artifactId>
	<version>1.7.1</version>
</dependency>

3.主要配置

主要是【spring.datasource.driver-class-name】和【decorator.datasource.p6spy】相关配置。

yaml 复制代码
spring:
  datasource:
    url: jdbc:p6spy:postgresql://xxx.xx.xxx.xxx:2345/gpdb
    username: gpadmin
    password: gpadmin
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    type: com.alibaba.druid.pool.DruidDataSource
decorator:
  datasource:
    p6spy:
      logging: file
      log-file: spy.log
      log-format: executionTime:%(executionTime) | sql:%(sqlSingleLine)

4.简单测试

调用项目中的某个接口之后...可以看到在当前项目的文件夹下生成了 spy.log 文件,且输出的格式跟 log-format 配置的是一致的。

java 复制代码
executionTime:43 | sql:SELECT * FROM yz_test_match ytm WHERE ytm.field = '豫A666666';

5.其他配置

logging: file 模式可以保存所有执行的SQL信息,在我们调试项目的时候,如果我们只需要控制台打印,那么配置如下:

yaml 复制代码
decorator:
  datasource:
    p6spy:
      logging: slf4j

输出结果如下:

java 复制代码
2021-07-19 15:00:56.523  INFO 2948 --- [nio-8088-exec-6] p6spy : 
executionTime:42 | sql:SELECT * FROM yz_test_match ytm WHERE ytm.field = '豫A666666';

6.小小的总结

本文介绍了在Spring Boot项目中集成p6spy-spring-boot-starter监控数据库的方法。主要内容包括:

  • 1)引入核心依赖;
  • 2)配置数据源driver-class-name为P6SpyDriver并设置日志格式;
  • 3)支持file和slf4j两种日志输出模式;
  • 4)测试验证SQL监控功能。

该方案可方便地拦截和记录SQL执行情况,便于项目调试,比直接使用p6spy更简便。

相关推荐
Java爱好狂.2 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
马良神笔4 小时前
2026 年Rag最近技术前沿总结
后端·python·django
程序猿DD4 小时前
同样10美元,OpenDesign和Command Code的DeepSeek V4.1 Flash额度到底有多少?
后端
高频因子挖掘机5 小时前
A股量化从日线升级到5分钟线:数据量增加后最先暴露哪些工程问题?
后端·github·api
高频因子挖掘机5 小时前
历史行情返回顺序变了,为什么按行号计算指标很危险?
后端·github·api
团子哒哒6 小时前
数组、切片和Map
后端
专注仿真7 小时前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
开心猴爷7 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
1m555555557 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
易小尊7 小时前
我的模型在 65% 以上时准得可怕,在 50% 时像在掷硬币
后端