- 浏览: 1608280 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
P6Spy的去掉ResultSet以及加入每日归档
P6Spy是一个很好的在ssh下进行数据库日志操作的工具,可以记录用户的查询操作,缺点:(1)对与每一个查询的结果集都会记录下来,这样当数据库表中数据量大的时候,日志的膨胀速度无法估计,经常是上GB级的log文件,无法打开,成了死的文件。(2)不支持每天生成一份日志记录,这样不便于只查看某天的数据库操作日志,当累积天数过多时也会造成日志文件的过于庞大,无法查看。
下面进行改造:
一、去掉结果集
这一步主要是包括修改com.p6spy.engine.logging.P6LogResultSet,修改其中的next方法如下:
public boolean next() throws SQLException {
long startTime = System.currentTimeMillis();
try {
return super.next();
} finally {
P6Connection p6connection = (P6Connection) this.statement.getConnection();
P6LogQuery.logElapsed(p6connection.getId(), startTime, "result",preparedQuery, query);
}
}
这样就可以在spy.properties中添加resultset来过滤掉结果集了:
excludecategories=info,debug,result,batch,resultset
为了去掉绑定的sql,减小sql语句的长度,修改com.p6spy.engine.logging.appender.FormattedLogger的logSQL方法如下:
public void logSQL(int connectionId, String now, long elapsed, String category, String prepared, String sql) {
String logEntry = now + "|" + elapsed + "|"
+ (connectionId == -1 ? "" : String.valueOf(connectionId))
+ "|" + category + "|" + sql;
logText(logEntry);
}
二、每天产生一个文件
这一步主要是在p6spy写入日志的时候截获当前时间,在当前日期文件下进行写入操作。
1)首先在com.p6spy.engine.common.P6SpyOptions加入你自己的日期格式(效仿log4j):
private static String rollingDatePattern;
生成setter和getter方法,如下:
public static String getRollingDatePattern() {
return rollingDatePattern;
}
public static void setRollingDatePattern(String rollingDatePattern) {
if (rollingDatePattern == null)
rollingDatePattern = "'.'yyyy-MM-dd";
P6SpyOptions.rollingDatePattern = rollingDatePattern;
}
2)在com.p6spy.engine.common.P6LogQuery中截获日志写入的方法doLog,加入以下内容:
if (logger instanceof FileLogger) {// file logger
String logfile = P6SpyOptions.getLogfile();
String suffix = "";
String dataFormatingSrtyle = P6SpyOptions.getRollingDatePattern();
if (dataFormatingSrtyle != null) {
dataFormatingSrtyle = dataFormatingSrtyle.substring("'.'".length());
SimpleDateFormat sdf = new SimpleDateFormat( dataFormatingSrtyle);
Date now = new Date();
suffix = "." + sdf.format(now);
}
logfile = (logfile == null) ? "spy.log" + suffix : logfile+ suffix;// logfile
// name
((FileLogger) logger).setLogfile(logfile);// set log file
3)在spy.properties中加入产生每日归档的属性即可:
#gen a databse log file every day
rollingDatePattern='.'yyyy-MM-dd
有一些包需要自己找,就是调用ant进行p6spy的源代码重构,改造成自己的p6spy.jar,需要在2003年9月左右的jar包噻,找不到的话就使劲找,不然就删一些无关紧要的文件夹,比如jboss,test之类的,不影响。
- p6spy-src.zip (534.8 KB)
- 下载次数: 71
- p6spy-install.zip (251.7 KB)
- 下载次数: 56
发表评论
-
SpringBoot Fat Jar解压运行
2018-06-28 21:40 2258SpringBoot已经成为当前最流行的微服务 ... -
一句话实现五星评分显示
2018-06-05 08:31 997Python: rate = 1 #rate 取值 ... -
来算google的可视化编程工具——Blockly,不仅仅是玩具
2017-10-16 21:34 33120Blockly - 来自Google的可 ... -
安卓动态分析工具 Inspeckage
2017-08-07 08:46 0工具介绍 一个基于Xposed 开发的应用动态分析工具 g ... -
Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
2017-08-07 08:37 0一、猜想数据存放路径 微信现在是老少皆宜,大街小巷都在使用 ... -
破解微信数据库 并查询数据上传服务器
2017-08-07 08:29 0由于工作需求破解了微信的数据库 并获取想要的信息上传服 ... -
安卓黑科技之HOOK详解
2017-08-07 08:21 0本文带大家进入到安卓另一个世界 互联网攻防大战 Xpos ... -
安卓逆向之基于Xposed-ZjDroid脱壳
2017-08-07 08:18 0前言 之前介绍了普通常见的反编译模式 但对于使用了 360 ... -
十步以内完成精细web打印
2017-06-21 11:44 7367注意: 康虎云报表组 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6695注意: 康虎云报表 ... -
疯狂软件对Oracle放弃Java EE的看法
2016-08-14 22:38 525来源:http://javaligang ... -
几个Java相关的思维导图
2016-03-17 13:07 954来源:http://blog.csdn.net/jackf ... -
jasperReport Applet 打印
2016-02-01 16:33 868Applet方式的原理是本地下载Applet以及Jas ... -
为Java说句公道话
2016-01-24 10:59 712为Java说句公道话 有些 ... -
Mybatis Generator配置详解(中文)_转
2015-12-17 16:44 917来自: http://www.jianshu.com/p/e ... -
一个提供大量数据模型的网站
2015-12-17 14:00 981网站地址是:http://www.databaseansw ... -
采用ajp代理模式配置Apache+tomcat实现负载均衡(转)
2015-11-13 10:22 869这一种方法,配置简单,性能也高。附AJP介绍: AJP ... -
MyBatis配置文件修改侦测及重载的实现
2015-07-31 13:53 2334MyBatis配置文件修改侦测及重载的实现: /** ... -
Spring optional @PathVariable?
2015-07-09 13:13 913Q: Is it possible to somehow ... -
The forked VM terminated without saying properly goodbye. VM crash or System.exi
2015-07-07 18:22 4289The forked VM terminated witho ...
相关推荐
附件中就是p6spy改造去掉resultset和添加每日归档的jar。 方法:打开eclipse,导入-eclipse,进行自己的修改(已改完) 将src复制到-src下面,运行ant命令即可在dist生成p6spy.jar文件 参照sp6.properties进行修改...
注释了一行代码,去除了resalutset结果集,不知道是否符合你们
【标题】"p6spy 修改版,去掉resultset" 是一个针对P6Spy数据库监控工具的定制化版本,主要特点是去除了对`ResultSet`的监控功能。P6Spy是一款广泛使用的开源工具,它允许开发者在不修改应用程序代码的情况下,监控...
p6spy支持jpa(如hibernate、ibatis/mybatis)打印完整sql。 此为本人在p6spy源码基础上进行修改,使其能在sql日志中过滤resultset,是sql更简洁,开发更方便。
P6Spy是一个强大的开源工具,专门用于监控JDBC连接,特别是在SpringBoot环境下,它可以提供对Oracle数据库查询执行时长的详细分析。P6Spy的工作原理是通过代理模式,拦截SQL语句并记录其执行情况,这有助于开发者...
**P6Spy 简介** P6Spy 是一个开源的数据库监控工具,它能够记录并分析应用程序与数据库之间的所有SQL交互。对于开发者而言,P6Spy 是一个强大的调试和性能分析工具,尤其在使用MyBatis或Hibernate等ORM框架时,能够...
一旦启用 P6Spy,每次应用程序执行 SQL 语句时,P6Spy 都会记录这些 SQL 的详细信息,包括执行前后的原始 SQL、执行参数、返回结果以及执行时间等,这对于性能调优和问题排查非常有用。 【排除ResultSet】 P6Spy ...
**P6Spy与WebLogic配置及SQLProfiler监控详解** ...这个过程涉及到对WebLogic数据源的配置、P6Spy代理驱动的使用以及`spy.properties`的定制。理解这些知识点对于监控和优化Java应用的数据库性能至关重要。
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
4. **配置数据库连接**:在应用程序的数据库连接URL中加入P6Spy的特定后缀,例如`jdbc:p6spy:mysql://localhost:3306/mydatabase`。 5. **启动应用**:重新启动应用,P6Spy即开始生效。 ### 四、日志分析与性能...
**P6Spy简介** P6Spy是一款开源的Java数据库监控工具,它允许开发者在不修改应用程序代码的情况下,透明地监控数据库活动。P6Spy通过拦截并记录JDBC调用来获取数据库查询、更新和其他操作的详细信息,这对于性能...
在介绍如何在MyEclipse中配置P6Spy以及导入其源码之前,首先需要了解P6Spy是一款什么工具。P6Spy是一个开源的应用程序,它允许开发者在Java应用程序中监控和记录对数据库的SQL调用。这对于数据库查询的性能分析和...
p6spy去掉结果集版 我的博客有相关的使用说明.
p6spy.jar 可配置是否需要resultset, excludecategories=info,debug,result,batch,resultset
P6Spy是一个广泛使用的开源框架,它允许开发者无侵入地监控和记录应用程序中的所有SQL语句。这个项目的目标是借鉴P6Spy的部分源码,创建一个自定义的SQL执行监控器,以满足特定的需求或提供更定制化的功能。 P6Spy...
在这种情况下,P6Spy是一个非常有用的工具。P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供...
《P6Spy 3.7.0:数据库监控与性能优化利器》 P6Spy 是一个开源的数据库监视工具,它允许开发者在不修改应用程序代码的情况下,对数据库访问进行监听、记录和分析。P6Spy 的3.7.0版本为开发者提供了更强大的功能和...
P6Spy 是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。P6Spy 用 Log4J 来...
1. **安装P6Spy**:首先,从P6Spy的官方网站下载最新版本的P6Spy库,并将其添加到项目的类路径中。这通常涉及到修改`pom.xml`文件(对于Maven项目)或`build.gradle`文件(对于Gradle项目)。 2. **配置P6Spy**:在...