如何跟踪对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配置文件可正确用于其他日志。
任何想法?
我不确定,但是根据我的测试,如果您删除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
看起来最大跟踪级别是3,这就是您失败的原因