Mybatis Log plugin是idea中的一个插件,用来监控mybatis日志,并输出拼装好的sql。
安装时直接在idea插件商店下载即可(2020版本可能需要付费)。
然后就在tools中打开就可以看到窗口了,
如图所示是正常的日志打印
插件中拼装好的sql:
如果使用logback来打印sql信息的话,有两种方式
一种是直接使用stdOut来输出
修改mybatis日志配置为mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
但是这种方式下,会输出查询结果,如果结果比较多,控制台很乱,不易找到自己需要的信息。
如果使用logback
配置日志输出格式的话,本地测试过程中发现,%m后面最好不要添加其他字符, 即日志输出配置最后以%m%n
结束。
如下:
<property name="DEFAULT_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %clr(${PID:- }) %clr([%5p]) %m%n"/>
导致这个问题的原因猜测是通过在插件中设置的过滤字符串,进行split。
默认配置如下图,一个是Preparing 另一个是Parameters, 如果后面多了空格,括号之类的,可能导致解析不准确。
本地测试时,由于最开始
%m
与%n
之间有空格,导致只有第一次可以显示拼好的sql,后面再使用的时候都不会显示出来sql。 不确定是否与这个有关系