Mybatis-Plus 开发环境打印sql到控制台以便分析
2020-11-10 本文已影响0人
骑蚂蚁上高速_jun
方式一:
在springboot 默认配置文件 logback-spring.xml 下添加配置如下:
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern>
</layout>
</appender>
<!-- mybatis-plus 操作数据库包所在路径 -->
<logger name="com.xxl.job.executor.mapper" level="debug"/>
该种方式记录的sql 语句,无法统计时间长度而且参数与sql 语句是分开的。 不美观
方式二:
使用第三方开源包库 p6spy 打印分析sql,该种方式适合开发环境调试,不适合生产环境
1.引入依赖
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
- 修改数据源配置 application-dev.properties
mysql.host.en.driver-class-name=com.p6spy.engine.spy.P6SpyDriver
mysql.host.en.url=jdbc:p6spy:mysql://localhost:3306/zmkm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong
mysql.host.en.username=root
mysql.host.en.password=123456
mysql.host.en.type=com.alibaba.druid.pool.DruidDataSource
- 添加 p6spy 配置 p6spy.properties
module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志输出到控制台,解开注释就行了
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 指定输出文件位置
logfile=C:\\data\\sql.log
# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 设置 p6spy driver 代理
deregisterdrivers=true
# 取消JDBC URL前缀
useprefix=true
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,batch,resultset
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动可多个
#driverlist=org.h2.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 1 秒
outagedetectioninterval=1
通过mybatis-plus打印日志如下
Consume Time:9 ms 2021-02-11 20:45:27
Execute SQL:select *,sd.name as department_name from sys_user su left join sys_department sd on su.department_id=sd.id where su.id=2
Consume Time:9 ms 2021-02-11 20:47:40
Execute SQL:select *,sd.name as department_name from sys_user su left join sys_department sd on su.department_id=sd.id where su.id=2