【SpringBoot】p6spy框架的使用

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

執行效果

發佈了150 篇原創文章 · 獲贊 94 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章