引入依赖

    1. <dependency>
    2. <groupId>p6spy</groupId>
    3. <artifactId>p6spy</artifactId>
    4. <version>3.8.1</version>
    5. </dependency>

    在数据库连接URL中加入p6spyimage.png
    自定义打印日志类P6spySqlFormatConfigure

    1. package com.qingfeng.configure;
    2. import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
    3. import com.qingfeng.utils.DateUtil;
    4. import org.apache.commons.lang3.StringUtils;
    5. import java.time.LocalDateTime;
    6. /**
    7. * @ProjectName P6spySqlFormatConfigure
    8. * @author Administrator
    9. * @version 1.0.0
    10. * @Description 打印SQL
    11. * @createTime 2022/1/11 16:13
    12. */
    13. public class P6spySqlFormatConfigure implements MessageFormattingStrategy {
    14. @Override
    15. public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {
    16. return StringUtils.isNotBlank(sql) ? DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN)
    17. + " | 耗时 " + elapsed + " ms | SQL 语句:" + StringUtils.LF + sql.replaceAll("[\\s]+", StringUtils.SPACE) + ";" : StringUtils.EMPTY;
    18. }
    19. }

    新建spy.properties文件
    image.png

    1. # 使用日志系统记录 sql
    2. appender=com.p6spy.engine.spy.appender.Slf4JLogger
    3. # 自定义日志打印
    4. logMessageFormat=com.qingfeng.configure.P6spySqlFormatConfigure
    5. # 是否开启慢 SQL记录
    6. outagedetection=true
    7. # 慢 SQL记录标准 2 秒
    8. outagedetectioninterval=2
    9. # 开启过滤
    10. filter=true
    11. # 配置不打印的内容
    12. exclude=select 1

    配置完成后,查看控制台
    image.png
    打印对应程序的执行SQL说明整合成功。