引入依赖
<dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>3.8.1</version></dependency>
在数据库连接URL中加入p6spy
自定义打印日志类P6spySqlFormatConfigure
package com.qingfeng.configure;import com.p6spy.engine.spy.appender.MessageFormattingStrategy;import com.qingfeng.utils.DateUtil;import org.apache.commons.lang3.StringUtils;import java.time.LocalDateTime;/*** @ProjectName P6spySqlFormatConfigure* @author Administrator* @version 1.0.0* @Description 打印SQL* @createTime 2022/1/11 16:13*/public class P6spySqlFormatConfigure implements MessageFormattingStrategy {@Overridepublic String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {return StringUtils.isNotBlank(sql) ? DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN)+ " | 耗时 " + elapsed + " ms | SQL 语句:" + StringUtils.LF + sql.replaceAll("[\\s]+", StringUtils.SPACE) + ";" : StringUtils.EMPTY;}}
新建spy.properties文件
# 使用日志系统记录 sqlappender=com.p6spy.engine.spy.appender.Slf4JLogger# 自定义日志打印logMessageFormat=com.qingfeng.configure.P6spySqlFormatConfigure# 是否开启慢 SQL记录outagedetection=true# 慢 SQL记录标准 2 秒outagedetectioninterval=2# 开启过滤filter=true# 配置不打印的内容exclude=select 1
配置完成后,查看控制台
打印对应程序的执行SQL说明整合成功。
