- 浏览: 308343 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lzz3717845:
有道理,受教了~谢谢
关于SQL中自动增长列值回复(还原)的问题 -
桃汁天天:
ExtJs中如何动态设置其选中状态!! -
sangumaolv2:
你TM在说什么啊。。。。
关于SQL中自动增长列值回复(还原)的问题 -
duyupeng:
你好,我最近也是在使用这个控件,只是用了_id、_parent ...
ExtJs 中的TreeGrid(Ext.ux.maximgb.tg.EditorGridPanel详解与其他问题解决办法) -
wokao_wg:
大伙可以看看作者说的http://www.sencha.com ...
ExtJs 中的TreeGrid(Ext.ux.maximgb.tg.EditorGridPanel详解与其他问题解决办法)2
下表列出了 spy.properties 配置文件中的各配置项 的名称、默认值及其意义和相关注意事项:
module.log | com.p6spy.engine.logging. P6LogFactory |
用来拦截和记录任务应用程序的 JDBC 语句。若无配置或注释掉则无此功能。 |
module.outage | com.p6spy.engine.outage. P6OutageFactory |
检测和记录执行时间比较长的 SQL 语句。若无配置或注释掉则无此功能。 |
realdriver | 真正的应用系统使用的数据库驱动程序名称。 | |
realdriver2 | 真正的应用系统使用的第二种备用数据库驱动程序名称。 | |
realdriver3 | 真正的应用系统使用的第三种备用数据库驱动程序名称。 | |
deregisterdrivers | false | 显示地把真正的数据库的驱动程序进行反注册掉。取值 true| false |
executionthreshold |
P6Log 模块执行时间设置,整数值 (以毫秒为单位),只有当超过 这个时间才进行记录 Log。 |
|
outagedetection | false | P6Outage 模块是否记录较长时间运行的语句。取值 true|false |
outagedetectioninterval |
P6Outage 模块执行时间设置,整数值 (以秒为单位)),只有 当超过这个时间才进行记录 Log。 |
|
filter | false | 是否过滤 Log,取值 true| false |
include | 过滤 Log 时所包含的表名列表,以逗号分隔。 | |
exclude | 过滤 Log 时所排除的表名列表,以逗号分隔。 | |
sqlexpression | 过滤 Log 时的 SQL 表达式名称 | |
autoflush | true | 是否自动刷新。取值 true| false |
dateformat | yyyy-MM-dd HH:mm:ss:SS | 设置时间的格式,也就是用 Java 的 SimpleDateFormat 程序。 |
includecategories |
显示指定过滤 Log 时包含的分类列表,取值为 error,info,batch,debug,statement,commit, rollback,result 的各种组合。 |
|
excludecategories | 显示指定过滤 Log 时排队的分类列表,取值同上。 | |
stringmatcher | 使用正则表达式来过滤 Log,取值为 com.p6spy.engine.common.GnuRegexMatcher 和 com.p6spy.engine.common.JakartaRegexMatcher | |
stacktrace | false | 打印堆栈跟踪信息。取值 true| false |
stacktraceclass | 如果 stacktrace=true,则可以指定具体的类名来进行过滤。 | |
reloadproperties | false | 监测属性配置文件是否进行重新加载。取值 true| false |
reloadpropertiesinterval | 60 | 属性配置文件重新加载的时间间隔,以秒为单位。 |
useprefix | false | 是否加上前缀,设置为 true,会加上 p6spy: 作为前缀。取值 true| false |
appender | com.p6spy.engine.logging. appender.FileLogger | 指定 Log 的 appender,与 Log4J 有点同义,取值:com.p6spy.engine.logging.appender.Log4jLogger、 com.p6spy.engine.logging.appender.StdoutLogger 和 com.p6spy.engine.logging.appender.FileLogger |
logfile | spy.log | 指定 Log 的文件名,任何适于操作系统的文件。 |
append | true | 指定是否每次是增加 Log,设置为 false 则每次都会先进行清空。取值 true| false |
log4j.appender.STDOUT | org.apache.log4j.ConsoleAppender | 当 appender 为 log4j 时采用的配置,配置如同 Log4J 的相关配置。 |
log4j.appender.STDOUT.layout | org.apache.log4j.PatternLayout | 同上 |
log4j.appender.STDOUT. layout.ConversionPattern | p6spy - %m%n | 同上 |
log4j.logger.p6spy | INFO,STDOUT | Log 级别的设置,取值同 Log4J 的配置 |
realdatasource | 设置数据源 DataSource 的配置名称。 | |
realdatasourceclass | 设置数据源 DataSource 的类的全称。 | |
realdatasourceproperties | 设置数据源 DataSource 的属性,以分号分隔。 | |
jndicontextfactory | 设置 JNDI 数据源的 NamingContextFactory。 | |
jndicontextproviderurl | 设置 JNDI 数据源的提供者的 URL。 | |
jndicontextcustom | 设置 JNDI 数据源的一些定制信息,以分号分隔。 |
appender
Appenders allow you to specify where and how log information is output. Appenders are a flexible architecture allowing anyone to write their own output class for P6Spy. To use an appender, specify the classname of the appender to use. The current release comes with three options which are log4j, stdout, and logging to a CSV text file (default).
-
Using a CSV File—
To output to a file, uncomment the FileLogger appender and specify a logfile and whether or not to append to the file or to clear the file each time:
#appender=com.p6spy.engine.logging.appender.Log4jLogger
#appender=com.p6spy.engine.logging.appender.StdoutLogger
appender=com.p6spy.engine.logging.appender.FileLogger# name of logfile to use, note Windows users should make sure to use forward slashes in their pathname(e:/test/spy.log) (used for file logger only)
logfile = spy.log# append to the p6spy log file. if this is set to false the
# log file is truncated every time. (file logger only)
append=true -
Using StdOut—
Uncomment the StdoutLogger as follows and all output will be sent to stdout in a CSV format:
#appender=com.p6spy.engine.logging.appender.Log4jLogger
appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.FileLogger -
Using Log4J—
To output to log4j, make sure log4j is in your path, uncomment the log4j appender, and specify the desired log4j settings:
appender=com.p6spy.engine.logging.appender.Log4jLogger
#appender=com.p6spy.engine.logging.appender.StdoutLogger
# appender=com.p6spy.engine.logging.appender.FileLogger#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.CHAINSAW_CLIENT=org.apache.log4j.net.SocketAppender
#log4j.appender.CHAINSAW_CLIENT.RemoteHost=localhost
#log4j.appender.CHAINSAW_CLIENT.Port=4445
#log4j.appender.CHAINSAW_CLIENT.LocationInfo=truelog4j.logger.p6spy=INFO,STDOUT
If for some reason log4j cannot be initialized, the logging will go to a file called log4jaux.log .
dateformat
Setting a value for dateformat changes the date format value printed in the log file. No value prints the current time in milliseconds, a useful feature for parsing the log. The date format engine is Java's SimpleDateFormat class. Refer to the SimpleDateFormat class in the JavaDocs for information on setting this value. An example follows:
dateformat=MM-dd-yy HH:mm:ss:SS
The log file format of spy.log follows:
current time|execution time|category|statement SQL String|effective SQL string
- current time — The current time is obtained through System.getCurrentTimeMillis() and represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT. (Refer to the J2SE documentation for further details on System.getCurrentTimeMillis().) To change the format, use the dateformat property described in Common Property File Settings .
- execution time —The time it takes for a particular method to execute. (This is not the total cost for the SQL statement.) For example, a statement SELECT * FROM MYTABLE WHERE THISCOL = ? might be executed as a prepared statement, in which the .execute() function will be measured. This is recorded as the statement category. Further, as you call .next() on the ResultSet, each .next() call is recorded in the result category.
- category — You can manage your log by including and excluding categories, which is described in Common Property File Settings .
- statement SQL string —This is the SQL string passed to the statement object. If it is a prepared statement, it is the prepared statement that existed prior to the parameters being set. To see the complete statement, refer to effective SQL string.
- effective SQL string — If you are not using a prepared statement, this contains no value. Otherwise, it fills in the values of the Prepared Statement so you can see the effective SQL statement that is passed to the database. Of course, the database still sees the prepared statement, but this string is a convenient way to see the actual values being sent to the database.
p6spy的FileLogger日志格式如上介绍的:
“current time|execution time|category|statement SQL String|effective SQL string ”
打印出来的日志可读性不是很好,下一节我们可以定制自己的格式 。
以下图片中 是按我个人的格式:
发表评论
-
P6Spy应用:Hibernate显示真正SQL(3)
2012-08-03 18:44 1237更改p6spy.jar中的以下文件即可控制FileLogger ... -
P6Spy应用:Hibernate显示真正SQL(1)
2012-08-03 18:05 1633P6 ... -
ResultSet用法集锦
2012-02-23 16:56 139743ResultSet用法集锦 结 ... -
ResultSet 参数設置使用實例
2012-02-23 14:32 1156public static String[][] ... -
可供参考的【数据库连接池(DBCP)】2
2012-02-10 12:01 1004import java.sql.Connection; ... -
可供参考的【数据库连接池(DBCP)】
2012-02-10 10:10 1019package com.spring.test; ... -
类型检查(RTTI与反射机制)转载
2012-02-02 10:35 1142... -
Servlet 3.0 新特性概览
2012-01-30 15:14 1006Se ... -
hibernate.hbm2ddl.auto配置详情
2011-12-09 11:02 1108hibernate.hbm2ddl.auto参数 ... -
如何在web.xml文件中引入其他的xml文件(web.xml如何拆分)
2011-11-14 20:08 8105如何在web.xm ... -
URL的Encoder、Decoder
2011-09-14 17:47 951URL : java.net.URLEncoder.e ... -
java中的DateAdd
2011-04-18 21:58 2347/** * 追溯到 startDate ... -
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE
2011-04-18 21:52 2344Statement stmt = con.createSt ... -
都是空格惹得祸
2010-10-28 11:06 1158在一个属性文件中获取相关信息时:如 database.p ... -
SVN提交工作时需要注意的事项
2010-10-14 20:31 940一.提交之前先更新 1. ...
相关推荐
P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供执行时间、性能指标等详细信息,这对于优化...
4. **查看结果**:启动应用后,P6Spy将开始记录所有通过Hibernate执行的SQL,并按照配置的方式输出。这将帮助开发者了解SQL的执行情况,找出可能的性能问题。 通过P6Spy,开发者可以更深入地了解和控制数据库操作,...
这篇博客“使用p6spy完整显示hibernate的SQL语句”可能详细解释了如何配置和使用p6spy来跟踪Hibernate生成并执行的SQL。 首先,`p6spy`是一个Java数据库代理库,它可以拦截并记录所有通过JDBC发送到数据库的SQL语句...
P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...
P6Spy 是一个开源的数据库监控工具,它能够记录并分析应用程序与数据库之间的所有SQL交互。对于开发者而言,P6Spy 是一个强大的调试和性能分析工具,尤其在使用MyBatis或Hibernate等ORM框架时,能够帮助我们更好地...
标题中提到的“输出完整SQL”,意味着P6Spy可以捕获并记录应用程序发出的所有SQL语句,包括参数。这对于调试和性能分析非常有用,特别是当SQL语句是动态生成或者使用了预编译的PreparedStatement时。 5. **兼容性*...
p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用
p6spy 是一个开源的 Java 框架,它的主要功能是在不修改代码的情况下,监控和记录 Java 应用程序中执行的所有 SQL 语句。这个工具对于开发者来说非常有用,因为它可以帮助定位性能瓶颈,特别是在使用 ORM(对象关系...
内含p6spy-3.6.0.zip,p6spy最新Hibernate和Mybatis拦截并格式化sql配置.txt两个文件,用于调试监控项目运行状态,亲测可用,测试整理出来花了我很长时间的,好用不可多得!
**P6Spy** 是一个开源的Java库,用于监控和日志记录应用程序与数据库之间的所有交互。它通过拦截和包裹JDBC驱动程序来实现这一功能,使得开发人员和DBA可以详细跟踪SQL查询,这对于性能优化、问题排查以及理解应用...
专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...
- **概述**:文档提到p6spy可以用于拦截Hibernate通过JDBC执行的SQL语句。Hibernate是一个流行的ORM框架,用于简化Java应用中的数据访问操作。 - **具体步骤**: 1. **替换数据库驱动**:正如前文所述,首先需要将...
p6spy是一个开源的Java库,设计用于监视和分析应用程序中执行的SQL语句。它的主要用途是在不修改代码的情况下,帮助开发者监控和调试应用程序与数据库之间的交互,尤其适用于那些使用ORM(对象关系映射)框架如...
p6spy支持jpa(如hibernate、ibatis/mybatis)打印完整sql。 此为本人在p6spy源码基础上进行修改,使其能在sql日志中过滤resultset,是sql更简洁,开发更方便。
# oracle driver # realdriver=oracle.jdbc.driver.OracleDriver # mysql Connector/J driver ... # informix driver ... # ibm db2 driver ...realdriver2= #specifies a third driver to use realdriver3=
与hibernate配合使用实现sql语句参数的打印及其他的一些性能方面的监控,有利于优化sql代码,用法上网随便一搜很多的
在企业做项目时如果用了hibernate会有个头疼问题,就是如何让输出sql方便查看,因为出了问题时,要去查错时sql日志会给我们很大帮助,但hibernate通过配p6spy输出很乱,且只能输了到spy.log中,很不好查看,这里是我...
IronTrack SQL是基于Apache许可证的开源工具,通过与开源JDBC驱动p6spy合作,提供了一个增强的对基于Hibernate的数据库应用的可视化调试和性能评测手段。 当开发者初次接触Hibernate时,他们通常会寻找方法来监控...
2. 配置数据库驱动,让应用程序通过P6Spy的代理驱动连接数据库。 3. 配置P6Spy的配置文件(spy.properties),指定日志文件位置和其他参数。 4. 分析P6Spy生成的日志文件,查看和分析SQL执行情况。 通过这样的监控...