天天看點

sql jar包_log4jdbc記錄完整的SQL資訊

閱讀文本大概需要3分鐘。

0x01:log4jdbc的簡單介紹

  使用log4jdbc在不改變原有代碼的情況下,就可以日志檔案中輸出的SQL語句和JDBC執行耗時情況。

      平時開發使用的mybatis、hibernate、spring jdbc的sql日志資訊,有一點個缺點是占位符與參數是分開列印的,如果想要拷貝SQL至PLSQL Developer用戶端直接執行,需要自己手動拼湊一下SQL。而log4jdbc是在jdbc層的一個日志架構,可以将占位符與參數全部合并在一起顯示,友善直接拷貝SQL在PLSQL Developer等用戶端直接執行,加快調試速度。

0x02: log4jdbc的使用

  下載下傳log4jdbc的jar包log4jdbc-1.2.jar以及依賴的相關Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar

在日志配置檔案中定義相關logger對象的輸出級别和輸出器

在log4jdbc中定義了以下五個日志對象:

  • jdbc.sqlonly     : 記錄系統執行過的sql語句
  • jdbc.sqltiming  : 記錄sql執行的時間,可以分析耗時的sql語句
  • jdbc.audit        : 記錄除了ResultSet外的所有JDBC調用情況。一般不需要
  • jdbc.resultset   : 記錄傳回結果集資訊
  • jdbc.connection: 記錄資料庫連接配接和釋放資訊,可記錄目前的資料庫連接配接數,便于診斷連接配接是否釋放

0x03: 配置log4j的log4j.properties的配置檔案

log4j.logger.jdbc.sqlonly=DEBUG,console
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
log4j.logger.jdbc.sqltiming=INFO,console  
log4j.logger.jdbc.connection=INFO,console
           

0x04: 修改jdbc.properties配置檔案的url和driverClassName

jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/xdptest
jdbc.driverClassName=net.sf.log4jdbc.DriverSpy
jdbc.username=root
jdbc.password=root
jdbc.filters=stat
jdbc.maxActive=200
jdbc.initialSize=20
jdbc.maxWait=60000
jdbc.minIdle=10
jdbc.timeBetweenEvictionRunsMillis=60000
jdbc.minEvictableIdleTimeMillis=300000
jdbc.validationQuery=SELECT 'x'
jdbc.testWhileIdle=true
jdbc.testOnBorrow=false
jdbc.testOnReturn=false
jdbc.removeAbandoned=false
jdbc.removeAbandonedTimeout=1800
jdbc.logAbandoned=true
           

主要是

  • com.mysql.jdbc.Driver 換成 net.sf.log4jdbc.DriverSpy
  • jdbc:mysql:// 換成  jdbc:log4jdbc:mysql://

往期精彩

01 漫談發版哪些事,好課程推薦

02 Linux的常用最危險的指令

03 網際網路支付系統整體架構詳解

04 優秀的Java程式員必須了解的GC哪些

05 IT大企業有哪些病,别被這些病毀了自己?

關注我每天進步一點點

sql jar包_log4jdbc記錄完整的SQL資訊
sql jar包_log4jdbc記錄完整的SQL資訊

你點的在看,我都當成了喜歡