p6spy介绍
p6spy 是一个开源的 JDBC 数据源代理工具,主要用于拦截和记录应用程序与数据库之间的所有 SQL 操作,方便开发者进行 SQL 调试、性能监控和问题排查。
p6spy可以打印实际执行的sql,在开发过程中方便调试,和使用框架无关,Mybatis和Hibernate等都可以使用。
使用方法
1.引入p6spy依赖
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
2.修改数据库连接信息,这里我使用的是Druid连接池
oracleDataSource = new DruidDataSource();
// 替换jdbcUrl为p6spy代理格式
// oracleDataSource.setUrl("jdbc:oracle:thin:@10.5.1.22:1521/ORCL");
oracleDataSource.setUrl("jdbc:p6spy:oracle:thin:@10.5.1.22:1521/ORCL");
oracleDataSource.setUsername("ORACLE_USERNAME");
oracleDataSource.setPassword("ORACLE_PASSWORD");
// 指定p6spy的代理类
oracleDataSource.setDriverClassName("com.p6spy.engine.spy.P6SpyDriver");
3.在resource目录下创建配置文件spy.properties
# 指定日志实现,这里使用 SLF4J 输出日志
appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 配置日志格式处理器,默认为SingleLineFormat是单行输出,这里指定多行日志输出格式,增加可读性
logMessageFormat=com.p6spy.engine.spy.appender.MultiLineFormat
4. 控制台成功打印日志
10:58:53.784 [main