`

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 即可,否则会报异常。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics