Search code examples
quarkusp6spy

Configure P6Spy on Quarkus


I'd like to use P6Spy with Quarkus but am unable to configure it by following generic instructions. Has anyone managed to get these two working together?


Solution

  • P6Spy is available on Maven. I was unable to get the latest version working so I'm using 1.3. Adapt the following procedure as per the actual driver you're using (in my case oracle.jdbc.driver.OracleDriver).

    1. Add P6Spy dependency to pom.xml
    <dependency>
      <groupId>p6spy</groupId>
      <artifactId>p6spy</artifactId>
      <version>1.3</version>
    </dependency>
    
    1. Create src\main\resources\spy.properties with the following content:
    module.log=com.p6spy.engine.logging.P6LogFactory
    realdriver=oracle.jdbc.driver.OracleDriver
    deregisterdrivers=false
    outagedetection=false
    filter=false
    autoflush   = true
    excludecategories=info,debug,result,batch
    logfile     = C:/temp/spy.log
    reloadproperties=false
    reloadpropertiesinterval=60
    useprefix=false
    appender=com.p6spy.engine.logging.appender.FileLogger
    append=true
    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=INFO,STDOUT
    
    1. Replace quarkus.datasource.jdbc.driver=oracle.jdbc.driver.OracleDriver with quarkus.datasource.jdbc.driver=com.p6spy.engine.spy.P6SpyDriver

    2. SQL queries should now get logged to logfile (in my case C:\temp\spy.log)