log4jdbc记录全部SQL日志

来源:互联网 发布:上海医院 知乎 编辑:程序博客网 时间:2024/04/29 16:05
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全部语句了。