2012-03-16 44 views
7

如何跟踪H2内存嵌入式数据库的SQL请求?如何跟踪H2内存数据库的SQL请求?

该文档说跟踪文件位于与数据库文件相同的目录中,但对于内存中的嵌入式数据库,我没有数据库目录(在Windows下)。

我尝试用

TRACE_LEVEL_FIle=4;TRACE_LEVEL_SYSTEM_OUT=3 
数据库URL

重定向痕迹与SLF4J /的logback给定的文件及以下logback.xml配置文件,但没有运气:

<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> 

我的logback配置文件对其他日志正常工作。

有什么想法?

+0

参见http://stackoverflow.com/questions/6124886/h2-and-query-logging – Vadzim 2017-01-20 12:28:23

回答

2

我不完全确定,但根据我的测试,似乎如果您删除TRACE_LEVEL_SYSTEM_OUT=3那么它会工作。你可以试试吗?例如数据库URL:中

jdbc:h2:mem:test;TRACE_LEVEL_FIle=4 

代替

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

谢谢。我设法使用单元测试正确地工作。这个问题似乎来自我正在使用的应用程序,它直接连接到数据库及其日志配置(使用公共日志记录),使得日志始终被重定向到控制台,而不是我想要的日志文件。 – user1274500 2012-03-21 09:50:14