下表列出了 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 | 设置时间的格式,也就是用 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 数据源的一些定制信息,以分号分隔。 |
1.在log4j配置文件里加上
log4j.logger.org.hibernate.type=DEBUG,CONSOLE
就可以看到被绑定的各个参数的值。
2.用 P6Spy。
3.用proxool。
配置org.logicalcobwebs.proxool.admin.servlet.AdminServlet
然后在web界面察看sql。
useprefix 设置成true,可以解决p6spy重复输出日志的问题