【问题标题】:Change trace file in H2更改 H2 中的跟踪文件
【发布时间】:2013-01-02 14:06:53
【问题描述】:

我的应用程序使用 H2,但已经有一个日志文件(例如:abc.log)

现在,我正在尝试让 H2 将日志/错误写入该文件 (abc.log),因此如果出现问题,用户只有 1 个文件要发送给我(不是 abc.log 和 abc.log)。 db.trace 文件)

有没有办法做到这一点?

【问题讨论】:

    标签: h2


    【解决方案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 似乎一次不能使用多个框架,因此此解决方案在您有一个现有框架的情况下才有效。

    【讨论】:

      猜你喜欢
      • 2014-06-18
      • 2012-06-23
      • 2020-05-03
      • 1970-01-01
      • 2014-05-21
      • 2015-11-21
      • 2021-04-09
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多