2012-03-16 14 views
7

¿Cómo puedo rastrear solicitudes SQL para bases de datos incrustadas en memoria H2?Cómo rastrear solicitudes de SQL para bases de datos H2 en memoria?

La documentación dice que el archivo de rastreo está ubicado en el mismo directorio que el archivo de base de datos, pero para la base de datos incrustada en memoria no tengo un directorio de base de datos (en Windows).

Traté de redirigir las huellas a un archivo dado con slf4j/logback utilizando

TRACE_LEVEL_FIle=4;TRACE_LEVEL_SYSTEM_OUT=3 

en la URL de base de datos y el siguiente archivo de configuración logback.xml pero sin suerte:

<configuration scan="true"> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>mylogfile.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>%d{yyyyMMdd}_mylogfile.log</fileNamePattern> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%date{yyyyMMdd HH:mm:ss} %contextName[%thread] %level %logger{0} - %msg%n</pattern> 
    </encoder> 
    </appender> 

    <logger name="com.myapp" level="WARN"> 
    <appender-ref ref="FILE" /> 
    </logger> 

    <logger name="h2database" level="TRACE"> 
    <appender-ref ref="FILE" /> 
    </logger> --> 

    <root level="WARN"> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

Mi archivo de configuración de logback funciona correctamente para otros registros.

¿Alguna idea?

+0

Véase también http://stackoverflow.com/questions/6124886/h2-and-query-logging – Vadzim

Respuesta

2

No estoy del todo seguro, pero según mi prueba, parece que si eliminas TRACE_LEVEL_SYSTEM_OUT=3, funcionaría. ¿Podrías probar esto? Ejemplo de URL de base de datos:

jdbc:h2:mem:test;TRACE_LEVEL_FIle=4 

en lugar de

jdbc:h2:mem:test;TRACE_LEVEL_FIle=4;TRACE_LEVEL_SYSTEM_OUT=3 
+0

Gracias. Me las arreglé para que funcione correctamente con una prueba de unidad. El problema parece provenir de la aplicación que estoy usando que se conecta directamente a la base de datos y su configuración de registro (usando el registro de commons) que hace que los registros siempre se redirijan a la consola y no al archivo de registro como yo quiera. – user1274500

Cuestiones relacionadas