更改 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 中的跟踪文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 跟踪文本文件中的更改

跟踪 python 需求文件中的更改并将更改自动同步到我的 conda env

.gitignore 不会停止在文件中跟踪更改

每个构建变体有两个 res 目录,Gradle 停止跟踪资源文件中的更改

在 VSCode 中保存文件会删除 git repo 中的所有跟踪文件

如何在 vscode 中将更改的文件与未跟踪的文件分开?