引入依赖
<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 {
@Override
public 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文件
# 使用日志系统记录 sql
appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 自定义日志打印
logMessageFormat=com.qingfeng.configure.P6spySqlFormatConfigure
# 是否开启慢 SQL记录
outagedetection=true
# 慢 SQL记录标准 2 秒
outagedetectioninterval=2
# 开启过滤
filter=true
# 配置不打印的内容
exclude=select 1
配置完成后,查看控制台
打印对应程序的执行SQL说明整合成功。