Мне удалось успешно настроить P6Spy для перехвата вызовов JDBC и вывода их на консоль Eclipse. Тем не менее, я хотел бы иметь эти журналы с параметрами привязки, записанными в файле. Может кто-то, пожалуйста, дайте мне понять, как это сделать. Вот мои текущие конфигурации:Как настроить p6spy перенаправить свой вывод в файл
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 для моего варианта использования, однако кажется, что он требует немного большей настройки, т. Е. Нужно изменить URL-адрес jdbc в соответствии с their doc. Приветствуется любой опыт, связанный с тем, как выполняется захват параметров в обеих фреймах и перенаправлен в файл.
Заранее спасибо.
Спасибо - я попытался точно, что перед публикацией, но он не работает для меня. Вы используете эту конфигурацию самостоятельно, и она работает? У меня было и # appender = com.p6spy.engine.spy.appender.StdoutLogger # appender = com.p6spy.engine.spy.appender.FileLogger раскоментирован, не уверен, имеет ли это значение. –
Я не использую p6spy, но обнаружил, что после поиска на веб-сайте проекта p6spy. Я уверен, что «appender = com.p6spy.engine.spy.appender.StdoutLogger» переопределяет «appender = com.p6spy.engine.spy.appender.FileLogger» в вашем случае, поэтому, возможно, вам стоит попробовать снова после комментирования " StdoutLogger ". – andrucz