我在项目中设置了嵌入式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)
有没有办法让这个输出沉默?
不幸的是,我不相信。我们的项目中也有同样的问题。我相信我曾在某个时间点检查过源代码并得出结论认为 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之前)来禁用该功能。