log4jdbc記錄全部SQL日誌

2021-07-15 10:45:47 字數 1629 閱讀 7714

log4jdbc 是工作在jdbc層的乙個日誌框架,能夠記錄sql及資料庫連線執行資訊。

一般的sql日誌會把具體的引數值用?代替,有時候很不方便,log4jdbc則會記錄資料庫執行的完整sql字串,在資料庫應用開發除錯階段非常有用。

log4jdbc具有以下特性:

•支援jdbc3和jdbc4。

•支援現有大部分jdbc驅動。

•易於配置(在大部分情況下,只需要改變驅動類名並在jdbc url前加上」jdbc:log4「,設定好日誌輸出級別)。

•能夠自動把sql變數值加到sql輸出日誌中,改進易讀性和方便除錯。

•能夠快速標識出應用程式中執行比較慢的sql語句。

•能夠生成sql連線數資訊幫助識別連線池/執行緒問題。

只需操作一下三步即可顯示全部sql日誌

1.匯入相關jar包

選擇日誌包,版本自己選擇

選擇slf4j-log4j包的版本是根據上面選擇的log4j和slf4j包的版本

根據自己的jdk版本選擇log4jdbc jar包

log4jdbc4-1.2.jar(log4jdbc 1.2 jar for jdbc 4 (jdk 1.6 and 1.7))或者log4jdbc3-1.2beta2.jar (for jdbc 3 (jdk 1.4 and 1.5))

2.配置log4j.properites,具體配置根據專案自己定義

#記錄系統執行過的sql語句

#log4j.additivity.jdbc.sqlonly=true

log4j.logger.jdbc.sqlonly=debug,console

#控制台輸出

#控制台輸出格式定義 

#記錄sql執行的時間,可以分析耗時的sql語句

#log4j.additivity.jdbc.sqltiming=true

#log4j.logger.jdbc.sqltiming=info,console  

#記錄除了resultset外的所有jdbc呼叫情況。一般不需要。

#log4j.additivity.jdbc.audidt=true

#log4j.logger.jdbc.audit=info,console

#記錄返回結果集資訊

#log4j.additivity.jdbc.resultset=true

#log4j.logger.jdbc.resultset=info,console

#記錄資料庫連線和釋放資訊,可記錄當前的資料庫連線數,便於診斷連線是否釋放

#log4j.additivity.jdbc.connection=true

#log4j.logger.jdbc.connection=info,console

3.修改連線驅動和連線url

比如:jdbc.driver=oracle.jdbc.driver.oracledriver

jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl

改為:jdbc.driver=net.sf.log4jdbc.driverspy

jdbc.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl

完成以上三步,重新啟動伺服器就ok了,你就可以看到sql全部語句了。

log4jdbc列印sql資訊

2 將應用中的driver class設定為net.sf.log4jdbc.driverspy 對於常用的jdbc驅動無需其他設定,比如oracle驅動oracle.jdbc.driver.oracledriver也已經在預設設定中了,若預設驅動列表中不包括你的應用系統中需要的驅動,那需要通過 dl...

log4jdbc列印完整SQL

一 log4jdbc簡單介紹 log4jdbc是工作在jdbc層的乙個日誌框架,能夠記錄sql及資料庫連線執行資訊。一般的sql日誌會把佔位符和引數值分開列印,log4jdbc則會記錄資料庫執行的完整sql字串,在資料庫應用開發除錯階段非常有用。log4jdbc具有以下特性 二 log4jdbc配置...

log4jdbc之sql執行時間日誌記錄原理解析

log4jdbc可以用來記錄sql執行日誌,該文就我們常使用的sql執行資訊日誌 jdbc.sqltiming 原理進行分析 1.需要在pom檔案新增依賴 我們經常看到的sql執行時間資訊 13 25 31.736 1659326468 qtp 1849186564 196 info jdbc.sq...