标签: SpringBoot p6spy springboot
p6spy是数据库动态监控的一种框架,可以使得数据库数据无缝拦截和操作,而不必对现有应用程序代码作任何修改,通常使用它来跟踪数据库操作,查看程序运行过程中执行的sql语句。
使用:
添加依赖
-
<dependency>
-
<groupId>p6spy</groupId>
-
<artifactId>p6spy</artifactId>
-
<version>3.8.0</version>
-
</dependency>
新建配置类,自定义输出格式
-
package com.tfjybj.intern3.config;
-
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
-
import java.text.SimpleDateFormat;
-
import java.util.Date;
-
/**
-
* p6spy打印日志输出格式修改
-
* 1.只打印最终执行的sql.
-
* 2.sql换到下一行
-
* 3.结尾处增加分号,以标示sql结尾
-
*
-
*/
-
public class P6SpyLogger implements MessageFormattingStrategy {
-
private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
-
@Override
-
public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {
-
StringBuffer buffer = new StringBuffer();
-
if (!("").equals(sql.trim())) {
-
return buffer.append("/* ").append(format.format(new Date())).append(" | took ")
-
.append(elapsed).append("ms | ").append(category)
-
.append(" | connection ").append(connectionId).append(" */ \n ")
-
.append(sql).append(";").toString();
-
}
-
return "";
-
}
-
}
新建SPY.PROPERTIES
-
reloadproperties=true
-
appender=com.p6spy.engine.spy.appender.Slf4JLogger
-
#P6SpyLogger 类全路径名
-
logMessageFormat=cn.e3mall.common.utils.P6SpyLogger
-
databaseDialectDateFormat=yyyy-MM-dd hh:mm:ss
-
excludecategories=info,debug,result,resultset
修改数据库配置
-
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
-
url: jdbc:p6spy:mysql://192.168.**.**:****/inte***_**?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
执行效果
![](https://i-blog.csdnimg.cn/blog_migrate/662fe46f75fb418d4896851d9515c355.png)
版权声明:本文为wzh66888原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:【SpringBoot】p6spy框架的使用_p6spy 只有在动态数据库配置才能用吗_Markfight!的博客-CSDN博客