有没有办法让hsqldb日志记录沉默?

Rog*_*ach 6 java hsqldb

我在项目中设置了嵌入式Hsqldb.但它在工作时会在输出上转储大量信息,而且我目前不需要这些信息:

Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint start
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose start
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose end
Mar 29, 2012 10:18:11 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint end
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个输出沉默?

jta*_*orn 6

不幸的是,我不相信。我们的项目中也有同样的问题。我相信我曾在某个时间点检查过源代码并得出结论认为 hsqldb 没有提供影响此日志记录的方法。

我纠正了(正如@fredt 在他对另一个答案的评论中提到的),您可以通过 jdk 日志级别控制此日志记录。将“hsqldb.db”日志级别设置为类似WARNING将抑制此输出。您可以使用 logging.properties 文件或以编程方式(在 hsqldb 加载后)使用类似Logger.getLogger("hsqldb.db").setLevel(Level.WARNING)(假设您正在使用 java util logging)来执行此操作。

正如下面的评论中所指出的,hsqldb 还会重置 java 日志记录配置。如果将它嵌入到另一个应用程序中,您可能希望通过将系统属性“hsqldb.reconfig_logging”设置为“false”(加载 hsqldb之前)来禁用该功能。

  • 尝试了您建议的调整,但信息消息在我的应用程序中的某个点之后继续出现,直到我还在代码开头添加了 `System.setProperty("hsqldb.reconfig_logging", "false");`。(我通过 Fred 对其他答案的评论中的链接在 HSQLDB 文档中找到了该系统属性。) (2认同)