更改 H2 中的跟踪文件
Posted
技术标签:
【中文标题】更改 H2 中的跟踪文件【英文标题】:Change trace file in H2 【发布时间】:2013-01-02 14:06:53 【问题描述】:我的应用程序使用 H2,但已经有一个日志文件(例如:abc.log)
现在,我正在尝试让 H2 将日志/错误写入该文件 (abc.log),因此如果出现问题,用户只有 1 个文件要发送给我(不是 abc.log 和 abc.log)。 db.trace 文件)
有没有办法做到这一点?
【问题讨论】:
【参考方案1】:您可以configure H2 to use SL4FJ如下:
jdbc:h2:~/test;TRACE_LEVEL_FILE=4
记录器名称是h2database
。
【讨论】:
感谢您的快速回复。您能否提供有关如何进行的更多信息。据我所知,我确实需要使用 sl4fs 并搜索那个 h2database 记录器(使用 LoggerFactory.getLogger('h2database '))......但是从那里开始?谢谢 就是这样,你只需使用 SLF4J 为“h2database”配置一个记录器。有关 SLF4J 的更多信息,请参阅 SLF4J 网站。 我现在确实看到在应用程序的文件夹中创建了一个新文件夹 [trace.db]。如何删除/禁用它? 您确实将;TRACE_LEVEL_FILE=4
附加到数据库URL 上?您的数据库 URL 是什么?
我确实使用不同的连接 URL,一个用于开发,一个用于开发conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test;TRACE_LEVEL_FILE=4", "sa", "");
,一个用于发布conn = DriverManager.getConnection("jdbc:h2:" + f.getCanonicalPath() + ";TRACE_LEVEL_FILE=4", "sa", "");
【参考方案2】:
好的解决方案对我来说很简单,但我唯一要做的就是添加
slf4j-api-1.7.2.jar
和
slf4j-jdk14-1.7.2.jar
在我应用的类路径中。
由于 SLF4J 将(首先搜索然后)自行发现要使用的底层日志记录框架,因此只需放置正确的实现即可。
一个警告,SLF4J 似乎一次不能使用多个框架,因此此解决方案仅在您有一个现有框架的情况下才有效。
【讨论】:
以上是关于更改 H2 中的跟踪文件的主要内容,如果未能解决你的问题,请参考以下文章
跟踪 python 需求文件中的更改并将更改自动同步到我的 conda env
每个构建变体有两个 res 目录,Gradle 停止跟踪资源文件中的更改