`

P6spy监控打印SQL语句

 
阅读更多
spy.properties可以直接到http://my.oschina.net/zh119893/blog/272545复制.



P6Spy 监控JDBC详细配置说明 http://blog.csdn.net/u010280007/article/details/8813140
1、解压出p6spy.jar 和 spy.properties两个文件
2、将p6spy.jar 放入应用程序的WEB-INF/lib目录,将spy.properties放入WEB-INF/classes目录(也就是工程的src下面)
3、修改spy.properties
    realdriver  =com.mysql.jdbc.Driver  将这行前面的#去掉
    logfile     = c:/spy.log  修改一个你需要的日志文件名,(下面可以配置输出到控制台)
4、module.log的属性必须配置,如果不配置,P6SPY将不起任何作用,典型配置为:module.log=com.p6spy.engine.logging.P6LogFactory
     realdriver=oracle.jdbc.driver.OracleDriver

5、appender配置,一般分为三种
      #appender=com.p6spy.engine.logging.appender.Log4jLogger
      # appender=com.p6spy.engine.logging.appender.StdoutLogger
      #appender=com.p6spy.engine.logging.appender.FileLogger
      其中,appender=com.p6spy.engine.logging.appender.StdoutLogger表示将输出的SQL或者日志信息输出到Console窗口。

6、log4j.logger.p6spy一般需要将log4j的相关参数从默认的,就是参数和log4j配置一样。
      log4j.logger.p6spy=info,STDOUT
      修改为
      log4j.logger.p6spy=warn,STDOUT
      以减少p6spy信息的输出

7、可以将dateformat=修改为dateformat=hh:mm:ss,SSS有利用时间信息的查看。
8、修改hibernate.cfg.xml,修改connection.driver_class的值为com.p6spy.engine.spy.P6SpyDriver
9、如果spy.log里出现
  你的程序的数据库驱动名称 is a real driver in spy.properties, but it has been loaded before p6spy . p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties
  请把spy.properties文件里的deregisterdrivers=false改为deregisterdrivers=true,重新运行即可。
10、在spring 配置文件中配置如下:, 因为要知道加载顺序, 所以只能这样配置
<!-- P6SPY dataSource target -->       
     <bean id = "dataSourceTarget" class = "org.springframework.jdbc.datasource.DriverManagerDataSource" >       
         <property name = "driverClassName"       
             value = "oracle.jdbc.OracleDriver" />       
         <property name = "url"       
             value = "jdbc:oracle:thin:@localhost:1521:testdb" />       
         <property name = "username" value = "tet" />       
         <property name = "password" value = "test" />       
     </bean >       
           
     <!--   dataSource -->       
     <bean id = "dataSource4develop" class = "com.p6spy .engine.spy.P6DataSource" destroy-method = "close" >          
         <constructor-arg >          
             <ref local = "dataSourceTarget" />          
         </constructor-arg >          
     </bean >



使用p6spy监控Spring+Ibatis/Hibernate SQL输出http://www.programgo.com/article/41393420648/
1. 在p6spy官方网站,下载p6spy.jar,放在lib目录下,将spy.properties放在 web-inf/classes下面(工作区最好是英文目录且无空格)。

2. 修改spy.properties,把realdriver 改为项目里使用的JDBC驱动名,如 realdriver=com.mysql.jdbc.Driver,其他的realdriver全部用#注释掉,修改 logfile=指定的SQL日志输出文件,如 logfile = d:/spy.log ,生成的SQL将会被写到到这个文件,只要执行SQL后查看该文件即可。
3.如果spy.log里出现以下异常
  <配置了的程序的数据库驱动名称> is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties
  需把spy.properties文件里的deregisterdrivers=false改为deregisterdrivers=true,然后重新运行。

4. 修改Spring配置文件,一般是applicationContext.xml
    把原来的数据源定义注释掉,然后加入以下配置:
    <bean id="dataSourceTarget" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="(jdbc驱动名,如com.mysql.jdbc.Driver)" />       
    <property name="url" value="<URL>" />       
    <property name="username" value="<用户名>" />       
    <property name="password" value="<密码>" />
  </bean>
  
  <bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource" destroy-method="close">          
        <constructor-arg>          
            <ref local="dataSourceTarget"/>          
        </constructor-arg>          
    </bean>

注:与Spring集成的话不需要修改realdriver


P6spy监控打印SQL语句 http://yyjlinux.iteye.com/blog/1776229
P6spy的配置非常简单:
修改应用的数据源文件,把JDBC Driver替换为P6spy Driver
将p6spy.jar包放到classpath下
设置spy.properties配置文件,并放到classpath下

spy.properties并在此基础上修改即可。其中主要有以下几个参数配置:
# 设置应用真正使用的JDBC Driver 
realdriver=org.h2.Driver 
 
# 设置使用p6spy driver来做代理 
deregisterdrivers=true 
 
# 取消JDBC URL前缀,if=true then url must be prefixed with p6spy: 
useprefix=false 
 
# 配置记录Log例外 
excludecategories=info,debug,result,batch 
 
# 日志输出到控制台 
appender=com.p6spy.engine.logging.appender.StdoutLogger

注:详细的spy.properties配置说明,可以参考p6spy安装包下提供的other.htm文档


1. P6spy的Maven依赖
<dependency>  
    <groupId>p6spy</groupId>  
    <artifactId>p6spy</artifactId>  
    <version>1.3</version>  
    <scope>test</scope>  
</dependency>

1) 下载下来的 IronTrackSQL.zip 中lib下的jar包都是要用到的,log4j-1.2.8.jar 可以移动到 lib 目录下或者和 irontracksql.jar 放在同个目录下。
2) p6spy.jar 和 irontracksql.jar 如果不在同个目录下(比如 p6spy.jar 是通过maven依赖方式引入的),运行应用程序时把 irontracksql.jar 加入classpath 即可,否则会报异常。
分享到:
评论

相关推荐

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

    采用p6spy完整显示hibernate的SQL语句

    P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供执行时间、性能指标等详细信息,这对于优化...

    使用P6spy打印ibatis执行的SQL语句

    本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...

    p6spy-sql监控

    **P6Spy SQL监控工具详解** ...总结来说,P6Spy是一个强大的SQL监控工具,它能够帮助我们更好地理解数据库性能、优化SQL语句以及保障数据安全。正确配置和使用P6Spy,可以显著提升Java应用程序的数据库管理效率。

    使用P6Spy和IronTrack SQL进行性能监控

    P6Spy通过拦截并记录SQL语句,为开发者提供了一种无侵入式的监控解决方案。它的工作原理是在JDBC驱动层插入一个代理,所有数据库访问请求都会经过这个代理,因此可以捕获到所有的SQL操作。P6Spy的配置相对简单,只...

    借鉴p6spy,实现自己的SQL执行监控器项目源代码

    P6Spy是一个广泛使用的开源框架,它允许开发者无侵入地监控和记录应用程序中的所有SQL语句。这个项目的目标是借鉴P6Spy的部分源码,创建一个自定义的SQL执行监控器,以满足特定的需求或提供更定制化的功能。 P6Spy...

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    然而,为了优化数据库性能、排查问题,我们往往需要监控和分析应用程序执行的SQL语句。这就引入了两个强大的工具——P6Spy和SqlProfiler,它们专门用于打印和分析JDBC执行的真实SQL。 P6Spy是一个开源的Java库,...

    使用p6spy完整显示hibernate的SQL语句

    `p6spy`是一个非常实用的开源工具,它能够帮助我们监控和记录应用通过JDBC执行的所有SQL语句。这篇博客“使用p6spy完整显示hibernate的SQL语句”可能详细解释了如何配置和使用p6spy来跟踪Hibernate生成并执行的SQL。...

    下载 p6spy.jar (内含使用步骤)

    1. **SQL日志记录**:P6Spy 可以捕获并记录应用程序执行的所有SQL语句,包括参数和执行时间,这对于调试和性能分析非常有用。 2. **格式化输出**:P6Spy 提供了自定义的日志格式,可以按照开发者的需求定制输出信息...

    用 p6spy 来观察 Java 程序中执行的所有 SQL 语句.docx

    p6spy 是一个开源的 Java 框架,它的主要功能是在不修改代码的情况下,监控和记录 Java 应用程序中执行的所有 SQL 语句。这个工具对于开发者来说非常有用,因为它可以帮助定位性能瓶颈,特别是在使用 ORM(对象关系...

    p6spy dataSource 配置 监听真实sql语句

    p6spy dataSource 配置 监听真实sql语句

    P6Spy 提供数据库性能监控和剖析工具

    通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。P6Spy 用 Log4J 来记录 JDBC 调用的日记信息。 自从 2003 年 11 月 30 日 P6Spy 版本 1.3 ...

    weblogic server 11g +p6spy +sql profiler 配置

    P6Spy则是一个开源的数据库监控工具,它能够帮助开发者和管理员追踪和分析SQL执行情况,提高数据库性能。SQL Profiler是P6Spy的一个组件,用于对数据库操作进行详细分析,找出潜在的性能瓶颈。 配置WebLogic Server...

    p6spy.rar输出完整带参sql

    标题中提到的“输出完整SQL”,意味着P6Spy可以捕获并记录应用程序发出的所有SQL语句,包括参数。这对于调试和性能分析非常有用,特别是当SQL语句是动态生成或者使用了预编译的PreparedStatement时。 5. **兼容性*...

    Tomcat6.x + P6spy + SqlProfiler集成

    - 通过P6spy收集的日志信息,你可以将这些SQL语句导入到SqlProfiler中进行更深入的分析。 4. **测试与调试** - 启动Tomcat,运行应用程序,进行数据库操作。 - 检查P6spy的日志文件,查看SQL语句的执行情况。 -...

    p6spy精简版-跟踪sql工具

    【p6spy精简版-跟踪SQL工具】是一款专为数据库操作监控设计的工具,它通过对JDBC驱动的拦截,实现对SQL语句的透明跟踪。这个精简版旨在简化p6spy的原生配置和使用流程,让更多非开发人员也能便捷地利用此工具来监控...

    p6spy java 使用

    一旦启用 P6Spy,每次应用程序执行 SQL 语句时,P6Spy 都会记录这些 SQL 的详细信息,包括执行前后的原始 SQL、执行参数、返回结果以及执行时间等,这对于性能调优和问题排查非常有用。 【排除ResultSet】 P6Spy ...

    sqlprofiler+p6spy+配制

    同时,将SQL Profiler和P6Spy结合使用,可以提供更全面的数据库性能监控视图。在Java应用中,P6Spy可以捕获和记录所有的SQL请求,而SQL Profiler则可以在服务器端提供更详细的事件追踪。这种组合可以提供从客户端到...

    p6spy简介显示hibernate配置

    1. **SQL日志记录**:P6Spy能够捕获并记录应用程序执行的所有SQL语句,包括参数值,这对于分析SQL性能和定位问题非常有价值。 2. **格式化输出**:P6Spy可以按照自定义的格式输出SQL日志,使其更易于阅读和分析。 ...

    p6spy_sqlprofiler-0.3-bin.zip

    它的工作原理是在数据库连接驱动层插入一个代理,使得所有的SQL语句在执行前都会经过P6Spy的处理。通过配置文件`spy.properties`,我们可以定制日志格式和内容,以便分析数据库性能。 在P6Spy的基础上,SQLProfiler...

Global site tag (gtag.js) - Google Analytics