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

时间:2012-03-29 18:21:08

标签: 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

有没有办法让这个输出静音?

4 个答案:

答案 0 :(得分:4)

不幸的是,我不相信。我们在项目中遇到了同样的问题。我相信我在一个时间点检查了源,并得出结论hsqldb没有提供影响这种记录的方法。

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

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

答案 1 :(得分:0)

对于任何寻找命令行解决方案的人。

使用指向专用属性文件位置的属性启动您的应用/服务器:

  

-Djava.util.logging.config.file = /位置/的/你的/ hsqldblog.properties“

其中包含以下行以更改Hsqldb的Java日志记录。

# Change hsqldb logging level 
org.hsqldb.persist = WARNING

旁注,您可以选择以下级别:

  

严重警告信息配置精细查询

More info on Java Logging

答案 2 :(得分:0)

对于Slf4j + Logback用户:

添加 $stock_get_property = StockPropertyTemplate::groupBy('group_id')->selectRaw('count(type) as total_property , group_id ')->where('type' , 'property')->orderBy('id', 'asc')->get(); $stock_get_variant = StockPropertyTemplate::groupBy('group_id')->selectRaw('count(type) as total_variant , group_id')->where('type' , 'variant')->orderBy('id', 'asc')->get(); //assigning $variant array -> total_variant $variant = []; foreach ($stock_get_variant as $row) { $variant[] = $row->total_variant; } //array push made $i = 0; $all_values = []; foreach ($stock_get_property as $row) { $all_values[] = array('group_id' => $row->group_id , 'total_property' => $row->total_property , 'total_variant' => $variant[$i]); $i++; } 作为依赖项(如果您有任何依赖项,请不要忘记排除原始log4j-over-slf4j依赖项)。如果您使用Gradle,请在log4j

中添加类似内容
build.gradle

然后,将其添加到您的runtime group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.25'

logback.xml

答案 3 :(得分:0)

从代码启动服务器时,您可以使用setSilent(true)

Server server = new Server();
server.setSilent(true);
server.setDatabaseName(0, "mainDb");
server.setDatabasePath(0, "mem:mainDb");
server.setPort(9001);
server.start();