关闭Hibernate c3p0的日志记录

Ale*_*rov 9 java logging hibernate c3p0

我正在使用Hibernate的c3p0连接池和标准Java 1.4 java.util.logging.启动时,我的应用程序在static块中设置它的日志记录属性(包括格式化程序和日志级别).每次我启动我的应用程序时,都会看到以下内容:

2011-04-16 17-43-51 [com.mchange.v2.log.MLog] INFO: {MLog.<clinit>) MLog clients using java 1.4+ standard logging.
2011-04-16 17-43-51 [com.mchange.v2.c3p0.C3P0Registry] INFO: {C3P0Registry.banner) Initializing c3p0-0.9.1 [built 16-January-2007 14:46:42; debug? true; trace: 10]
2011-04-16 17-43-51 [com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource] INFO: {AbstractPoolBackedDataSource.getPoolManager)
...
Run Code Online (Sandbox Code Playgroud)

我试过了

Logger.getLogger("com.mchange").setLevel(Level.WARNING);
com.mchange.v2.log.MLog.getLogger().setLevel(MLevel.WARNING);
System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "WARNING");
Run Code Online (Sandbox Code Playgroud)

但是我现在发现的唯一可以防止它的方法是

Logger.getLogger("").setLevel(Level.WARNING);
Run Code Online (Sandbox Code Playgroud)

这影响了一切 - 不是一个好的副作用.谷歌没有帮助.有人可以帮忙吗?

Ale*_*rov 19

我找到的方法是设置系统属性

System.setProperty("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog");
Run Code Online (Sandbox Code Playgroud)

此外

System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "WARNING");
Run Code Online (Sandbox Code Playgroud)

我想,没有任何其他日志记录系统会使这个可选,但似乎我错了.

PS

该死的那些轮改造的自定义日志记录实现,就像c3p0使用的那样...


Boh*_*nko 11

我找到实现这一目标的方式

在类路径中创建一个名为mchange-log.properties的文件,并将其放入Frozen Spider建议的属性中.

com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=WARNING
Run Code Online (Sandbox Code Playgroud)

即使您无法直接设置系统属性,这也可以正常工作.