用p6spy和sqlprofiler来进行jdbc sql日志记录和分析

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

http://blog.donews.com/lizongbo/archive/2005/05/26/399506.aspx

1.相关工具下载:
辅助日志分析工具:
2.解压p6spy-install.zip,把p6spy.jar和spy.properties放到classpath中。
 
修改spy.properties
realdriver=org.gjt.mm.mysql.Driver# 数据库驱动程序的名字
 
appender=com.p6spy.engine.logging.appender.StdoutLogger
 
3.在设置数据源或者配置数据库连接的地方,
修改driver为:com.p6spy.engine.spy.P6SpyDriver
 
例如:

<sql:setDataSource driver="com.p6spy.engine.spy.P6SpyDriver" user="${db_user}" password="${db_password}" url="${db_url}" var="mydb" scope="application"/>

 
运行程序,然后就可以在控制台看到所有的sql语句了。
 
4.解压sqlprofiler-0.3-bin.zip,将
spy.properties下面内容复制到先前的spy.properties替换相应地配置:
--------------------------
appender=com.p6spy.engine.logging.appender.Log4jLogger
#appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.FileLogger
 
# append to  the p6spy log file.  if this is set to false the
# log file is truncated every time.  (file logger only)
append=true
 
#The following are for log4j logging only
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=p6spy - %m%n
 
log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
log4j.appender.SQLPROFILER_CLIENT.RemoteHost=localhost
log4j.appender.SQLPROFILER_CLIENT.Port=4445
log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true
 
#log4j.logger.p6spy=INFO,STDOUT
log4j.logger.p6spy=DEBUG, SQLPROFILER_CLIENT
 
 
这段配置的意思是使用log4j来记录日志。
因此需要用到log4j.jar
 
先运行sqlprofiler.jar,然后再运行自己的应用,
这样就可以建立socket的logger了。
然后就可以在sqlprofiler的界面中看到sql语句。
 
参考:

 

jdbc日志慢SQL过滤工具 jdbc打印sql日志,如果每条sql都有执行时间,可以使用这个小工具进行慢sql的过滤,做性能测试的童鞋可以试一下 立即下载

相关推荐

p6spy 日志打印框架使用

引包 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.9.1</version> </dependency> 配置 yml配置 修改driver-class-name为 com.p6spy.engine.sp

y368769的博客 1647

P6SPY结合SQL Profile进行数据库调优

使用p6spy进行数据库操作执行时间的记录极大的方便了数据库程序的调优,结合SQL Profile使用,可以非常直观的看到sql语句的耗时等,使用方法非常简单, 下载p6spysql profile两个项目文件,解压, 将p6spy.jar放到项目的class path中 将spy.properties放到项目的class目录下,若在Eclipse中开发,可以放到src目录下 修改spy.properties文件,将realdriver=com.ibm.db2.jcc.DB2Drive

幸福的流浪者专栏 1612

jdbc连接mysql数据库效率_提升基于JDBC的应用程序访问数据库的效率

一般来说,我们的JavaEE - JDBC企业应用程序的主要瓶颈之一就是在访问数据库,而数据库的瓶颈又主要在海量数据的查询上。如何解决这个问题?最简单的方法就是为数据库表建立精确的索引。如何做到有效的建立索引?不妨利用P6Spy(http://www.p6spy.com/)及SQL Profiler(http://www.jahia.net/jahia/page597.html)软件包针对应用程序...

weixin_30977485的博客 298

使用hibernate 3 + p6spy+ log4j 写日志文件(一)

因为业务的需要,要将每次操作的数据库语句写到一个表中,才有了这篇文章。在网上找了很多的资料,终于找到了p6spy这个东东。下面开始1.找到p6spy 的jar包 --- p6spy.jar 添加到项目的lib下2.将 p6spy.properties 这个文件也加到lib下3.修改 p6spy.properties 文件,启用你所用的 realdriver,如对于 oracle

上班搞IT,下班搞ITF。 2445

p6spy使用logback作为日志系统

受够了ibatis自带sql语句的日志输出,一坨的问号,直接copy出来,还不能运行,要手工替换每个问号为对应的参数。依照google法则,嗯,发现一个可以自动将sql的问号替换为实际参数并进行日志输出的工具--p6spy。没的说,download,依照使用手册,把p6spy.jar放到lib目录,p6spy.properties放到classes目录。对原jdbc驱动源进行相应的配置,改为driverClassName = com.p6spy.engine.spy.P6SpyDriver。开始运行,吼吼,

kiven的专栏 5779

sql性能监控(p6spy使用)

P6Spy是一个可以用来在应用程序中拦截修改数据操作语句的开源框架. 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。 弄hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全PreparedStatement一样,用?来代替的。 用p6spy可以达到显示的那些参数原值的

1103

监控剖析数据库操作 -- P6SpySQL Profiler、IronTrack SQL 使用简介

文档选项 ...

dodomail的专栏 174

使用p6spysqlprofiler查看执行sql

在公司使用ibaits做持久层存储。虽然ibatis是半自动的,可以编写sql,但是跟一大堆的xml放在一起看起来很不直观。之前虽然可以配置log4j可以打印执行的sql,但是输出的只是预编译的,其中充斥着?,传入的参数不能能直观的检查。在测试的时候往往想查看执行的sql到底是什么,这样对于定位错误非常有用。在网上找到两个工具包来解决这个问题:p6spysql_profiler。 访问链接如下...

Knowing something of everything and everything of something. 345

p6spy 在weblogic中的配置 以及使用sqlprofiler监控

  weblogic 10 配置p6spy 1.http://www.p6spy.com/download.html,下载zip包 2.解压出p6spy.jar spy.properties两个文件 3.将p6spy.jar 放到BEA_HOME\user_projects\domains\mydomain\console-ext目录下; 4.将spy.properties放到BEA...

cometzb的博客 593

P6SPYSQL Profiler结合使用

弄hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全是像PreparedStatement一样,用?来代替的。 用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。 p6spy: http://sourceforge.net/projects/p6spy/ SQL Profile: ht...

JAMES.TANG 175

利用P6SPYSQL Profiler记录、统计web app对数据库的操作

弄hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全是像PreparedStatement一样,用?来代替的。用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。p6spy: http://www.p6spy.comSQL Profile: http://www.jahia.net/jahia

蓝色幻想 2886

P6Spy

P6Spy是一个可以用来在应用程序中拦截修改数据操作语句的开源框架。通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。   一、P6Spy的安装与使用 1、从 http://www.p6spy.com/ 下载P6Spy的文件包,也可以下载它的源文件包来研究; 2、把P6Spy的jar包p6spy.jar放到classp

kevin_Luan的专栏 2096

P6spy属性文件

p6spy 组件,它可以拦截所有执行的 SQL 语句,而不管你使用的是什么 ORM 框架。对于 PrepareStatement 那样带参数(?) 的语句,它会帮你代上相应的参数值。   p6spy 的主页是 http://www.p6spy.com,它支持当前流行的应用服务器,如 JBoss、Orion、Tomcat、WebLogic、WebSphere 等,在 http:...

weixin_30821731的博客 155
上一篇: 关于J2EE中死锁问题的研究
下一篇: 在Java中用类装载框架控制类加载
hennylee
博客等级 码龄24年 6粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值