如何跟踪H2内存中嵌入式数据库的SQL请求?
文档说跟踪文件与数据库文件位于同一目录中,但对于内存中嵌入式数据库,我没有数据库目录(在Windows下)。
我尝试使用
将跟踪重定向到使用slf4j / logback的给定文件TRACE_LEVEL_FIle=4;TRACE_LEVEL_SYSTEM_OUT=3
在数据库URL和以下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 :(得分:5)
我不完全确定,但根据我的测试,似乎你删除了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
答案 1 :(得分:-1)
看起来最大跟踪级别是3,这就是您失败的原因