有時候我們程序的接口比較耗時,需要優化,這時我們可能需要了解該接口執行了哪些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語句的話插入對象的值都有

