我能够成功配置P6Spy来拦截JDBC调用,并将其输出到Eclipse的控制台。但是,我想在文件中捕获那些带有绑定参数的日志。有人可以帮我解决这个问题。这是我当前的配置:

log4j.properties

# Default log level
log4j.rootCategory=ERROR, console, FileAppender

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] %c: %m%n

# DEBUG File
log4j.appender.FileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileAppender.Threshold=DEBUG
log4j.appender.FileAppender.File=claims_logger.log
log4j.appender.FileAppender.MaxFileSize=1024KB
log4j.appender.FileAppender.MaxBackupIndex=2
log4j.appender.FileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern=%-5p %d [%t] %c: %m%n

log4j.logger.org.apache=WARN

 log4j.logger.org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog=ERROR


log4j.logger.org.springframework.beans.factory=WARN

log4j.logger.org.mule=INFO
log4j.logger.org.mule.modules.sqs=DEBUG

log4j.logger.org.fuwt=DEBUG

spy.properties
realdriver=org.postgresql.Driver
useprefix=false
deregisterdrivers=true
module.log=com.p6spy.engine.logging.P6LogFactory

executionthreshold=

outagedetection=false
outagedetectioninterval=

filter=false

include     =

exclude     =

sqlexpression =

autoflush   = true

dateformat=yyyy-MM-dd hh:mm:ss

includecategories=

excludecategories=info,debug,result,batch

stringmatcher=

stacktrace=false

stacktraceclass=

reloadproperties=false


reloadpropertiesinterval=60


appender=com.p6spy.engine.logging.appender.StdoutLogger
append=true

log4j.additivity.p6spy=false

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=p6spy - %m%n


log4j.logger.p6spy=DEBUG,STDOUT

Spring正在使用以下方法构建其数据源:
jdbc.driverClassName=com.p6spy.engine.spy.P6SpyDriver

我正在使用P6Spy 1.3版。

我读到log4jdbc是用于我的用例的首选SQL侦听方式,但是似乎它需要更多配置,即需要根据their doc修改jdbc URL。任何在两个框架中如何完成参数捕获并重定向到文件的经验都值得赞赏。

先感谢您。

最佳答案

您应该使用FileAppender并指定一个日志文件,如https://p6spy.github.io/p6spy/2.0/configandusage.html所示

#指定用于记录的附加程序
#请注意:重新加载意味着忘记所有先前设置的
#个设置(甚至是在运行时设置的设置-通过JMX)
#从干净的桌子开始
#(仅从配置文件读取的属性)
#(默认为com.p6spy.engine.spy.appender.FileLogger)
#appender = com.p6spy.engine.spy.appender.Slf4JLogger
#appender = com.p6spy.engine.spy.appender.StdoutLogger
#appender = com.p6spy.engine.spy.appender.FileLogger

#要使用的日志文件的名称,请注意Windows用户应确保在其路径名中使用正斜杠(e:/test/spy.log)
#(仅用于com.p6spy.engine.spy.appender.FileLogger)
#(默认是spy.log)
#logfile = spy.log

09-27 23:40