开源框架-Mybatis系列

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>
  1. 修改数据源配置 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 
  1. 添加 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
上一篇下一篇

猜你喜欢

热点阅读