springboot打印sql语句及执行时间
Posted shog808
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot打印sql语句及执行时间相关的知识,希望对你有一定的参考价值。
有时候我们程序的接口比较耗时,需要优化,这时我们可能需要了解该接口执行了哪些sql语句以及耗时
1.引入jar包
<!--监控sql日志--> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency>
2.引入配置文件 log4jdbc.log4j2.properties
内容为:
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
3.logback-spring.xml 里加入如下内容
<logger name="jdbc.connection" level="OFF"/> <logger name="jdbc.resultset" level="OFF"/> <logger name="jdbc.resultsettable" level="OFF"/> <logger name="jdbc.audit" level="OFF"/> <!--ps:sqltiming和sqlonly差别是多打印了sql语句的耗时,如果不想要这个时间可以修改筛选里面的项。--> <logger name="jdbc.sqltiming" level="INFO"/> <logger name="jdbc.sqlonly" level="OFF"/>
4.配置文件中修改部分属性值
如图:
即:
driver-class-name 修改为:net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url 修改为:jdbc:log4jdbc:mysql:// (在原来的jdbc后面加了:log4jdbc:)
---------------------------------------------------------------------------
以上完成任务,下面看下效果
---------------------------------------------------------------------------
注意:除了打印sql执行时间外,打印的sql语句是包含sql所带的参数的,select语句的话where后面带参数值,insert语句的话插入对象的值都有
以上是关于springboot打印sql语句及执行时间的主要内容,如果未能解决你的问题,请参考以下文章
springboot整合mybatis在控制台打印sql语句的办法及MyBatis Log Plugin插件的安装与使用
SpringBoot JPA打印JPA执行的SQL语句与参数Springboot JPA日志输出打印SQL语句和传入的参数 高阶篇
SpringBoot 中的 Mybatis 打印 执行过的SQL语句
MyBatis插件及示例----打印每条SQL语句及其执行时间