log4jdbc記錄全部SQL日誌

五柳-先生發表於2016-05-04
log4jdbc 是工作在jdbc層的一個日誌框架,能夠記錄SQL及資料庫連線執行資訊。

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

log4jdbc具有以下特性:


•支援JDBC3和JDBC4。
•支援現有大部分JDBC驅動。
•易於配置(在大部分情況下,只需要改變驅動類名並在jdbc url前加上”jdbc:log4“,設定好日誌輸出級別)。
•能夠自動把SQL變數值加到SQL輸出日誌中,改進易讀性和方便除錯。
•能夠快速標識出應用程式中執行比較慢的SQL語句。
•能夠生成SQL連線數資訊幫助識別連線池/執行緒問題。

只需操作一下三步即可顯示全部SQL日誌
1.匯入相關JAR包
選擇日誌包,版本自己選擇
log4j-1.2.15.jar   (下載地址:http://www.apache.org/dist/logging/log4j/)
slf4j-api-1.6.1.jar(下載地址:http://www.slf4j.org/dist/)(比如下載slf4j-1.6.1.zip)
選擇slf4j-log4j包的版本是根據上面選擇的log4j和slf4j包的版本
slf4j-log4j12-1.6.1.jar 此jar包在slf4j專案包下(下載slf4j專案包解壓,比如slf4j-1.6.1.zip)
根據自己的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))
此jar包下載地址http://code.google.com/p/log4jdbc/downloads/list


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


#記錄系統執行過的sql語句
#log4j.additivity.jdbc.sqlonly=true
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
#記錄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全部語句了。

轉載:http://blog.csdn.net/dcx903170332/article/details/17020425

相關文章