首页 > 其他分享 >p6spy 整合springboot

p6spy 整合springboot

时间:2023-04-11 23:35:05浏览次数:30  
标签:engine spy p6spy 整合 sql com append springboot

1.导入pom

<!-- sql代理拦截,慢sql打印 -->
<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

2.配置自定义日志

import com.p6spy.engine.common.P6Util;
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
import lombok.extern.slf4j.Slf4j;

import java.text.SimpleDateFormat;

@Slf4j
public class P6spyConnfig implements MessageFormattingStrategy {
    private 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) {
        StringBuilder sb = new StringBuilder();

//        JSONObject json = new JSONObject();
//        json.put("level", "ERROR");
//        json.put("time", elapsed + " ms");
//        json.put("sql", P6Util.singleLine(sql));
        sb
//            .append("{")
//            .append("连接id:").append(connectionId).append("\n")
            .append("当前时间:").append(now).append(" | ")
//            .append("类别:").append(category).append("\n")
            .append("花费时间:").append(elapsed)
            .append("毫秒 | ")
//            .append("花费时间:").append(elapsed).append("\n")
//                .append("url:").append(url).append("\n")
//            .append("预编译sql:").append(P6Util.singleLine(prepared)).append("\n")
//            .append("最终执行的sql:").append(P6Util.singleLine(sql))
            .append("超时慢sql:").append(P6Util.singleLine(sql));
//        if (elapsed > 1000) {
//            log.error("sql超时!" + sb.toString());
//        }

//            .append("}");
        return sb.toString();
    }
}

3.配置数据库连接

#mysql
spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver
spring.datasource.jdbc-url=jdbc:p6spy:mysql://localhost:3306/giov?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456

4.配置spy文件

module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印  控制台打印
#logMessageFormat=com.wjy.log.P6SpyLogger
#logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat
#logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat
logMessageFormat=com.xxx.config.P6spyConnfig
# 使用日志系统记录sql  控制台打印的格式
#系统格式 输出到文件
appender=com.p6spy.engine.spy.appender.FileLogger
#appender=com.p6spy.engine.spy.appender.FileLogger
## 配置记录Log例外
excludecategories=info,debug,result,batc,resultset
# 指定 Log 的文件名 默认 spy.log
#logfile=spy1.log
# 指定是否每次是增加 Log,设置为 false 则每次都会先进行清空 默认true
append=false
# 设置使用p6spy driver来做代理
deregisterdrivers=true
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动
driverlist=com.mysql.jdbc.Driver
## log模块专属参数,当log模块开启式,如果执行语句超出这个时间(单位毫秒),才能被记录在文件中
#executionthreshold=10
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 秒   超过这个时间这个查询操作将会被中止,并且抛出异常!
outagedetectioninterval=2

标签:engine,spy,p6spy,整合,sql,com,append,springboot
From: https://www.cnblogs.com/yslu/p/17308267.html

相关文章

  • SpringBoot 集成 MybatisPlus 六——ActiveRecord 增、删、改
    1向表中插入记录1.1插入所有列在创建实体对象时,指定所有字段的内容,包括ID列。@TestpublicvoidtestAddUser(){Useruser=newUser(20,"成吉思汗","男","一代天骄");booleanres=user.insert();System.out.println(res);}调用MyBatisPlus时,后台执行的......
  • SpringBoot实现文件图片上传并转换为虚拟路径
    页面代码<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"><title>Title</title></head><body><formaction="/putpic......
  • skywalking 监控 springboot项目
     部署探针打开idea开发工具Run-》EditConfigurations点击Modifyoptions-》AddVMoption-javaagent:E:\projectdeploy\apache-skywalking-apm-9.2.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar-Dskywalking.agent.service_name=service-mylesson-jav......
  • Spring Boot 整合 Kafka
    Kafka环境搭建kafka安装、配置、启动、测试说明:1.安装:直接官网下载安装包,解压到指定位置即可(kafka依赖的Zookeeper在文件中已包含)下载地址:https://kafka.apache.org/downloads示例版本:kafka_2.13-2.8.0.tgz下载后可本地解压安装,解压位置自选,如D:\Java下解压命令:tar......
  • Springboot集成dubbo完整过程(三)
    准备工作1,准备mysql服务环境2,准备redis服务环境3,准备zookeeper服务环境4,准备逆向生成bean的xml配置文件5,准备slf4j日志xml配置文件6,准备一个sql脚本1,搭建创建服务工程1,创建一个空的父工程,用来统一管理依赖2,创建一个interface接口工程,主要存放业务bean,接口类3,创建一......
  • #yyds干货盘点 springboot和vue搭建前后端项目实现员工的增删改查
    前言我是歌谣今天继续带来前后端项目的开发上次已经开发了部门管理,今天继续开发员工管理后端第一步empcontroller代码packagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.PageBean;importcom.itheima.pojo.Result;importcom.itheima.s......
  • SpringBoot整合ElasticSearch8.x 踩坑记录
    背景jdk版本openjdk-17springboot版本2.6.11pom.xml<!--ElasticSearch提供的依赖--><dependency><groupId>co.elastic.clients</groupId><artifactId>elasticsearch-java</artifactId><version>8.6.2</version>......
  • 自定义SpringBoot Starter
    1.Starter加载原理Springboot通过SpringBootApplication注解启动项目,springboot启动的时候,会将项目中所有声明为bean对象的实例加载到IOC容器。除此之外也会将starter里的bean信息加载到ioc容器,从而做到0配置,开箱即用。1.1加载starter:Springboot项目启动时,Springboot通过@Spri......
  • SpringBoot---文件上传
    静态资源访问使用IDEA创建SPringBoot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下即可。如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤策略。在application.properties中直接定义过滤规则和静态资源位置:spring.mvc.stati......
  • Springboot报错:Could not resolve view with name 'index' in servlet with name 'dis
    该异常是因为用定义了带@EnableWebMvc注解的配置类后发生的,在带该注解的配置类中加入下面的代码就可以了:@BeanpublicInternalResourceViewResolverviewResolver(){InternalResourceViewResolverviewResolver=newInternalResourceViewResolver();viewResolver.......