• log4jdbc记录全部SQL日志


    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全部语句了。

  • 相关阅读:
    ffmpeg使用中文使用+解释
    CentOS GCC升级到4.6.1(转)
    C#委托与直接调用方法区别
    微软面试题,倒置数组
    MSDN中介绍的图片格式
    你们的学校是几流
    VS代码模版
    正则表达式
    Visual Studio 2010中添加项目模板
    泛型详解
  • 原文地址:https://www.cnblogs.com/ihanliu/p/4939860.html
Copyright © 2020-2023  润新知