如何在我的休眠模式中启用 c3p0 日志记录 class

How to I enable c3p0 logging within my hibernate class

我正在使用 Java 8、Hibernate 4.3.11 和 c3p0 9.2.1。

我在我的休眠配置中定义了我所有的 c3p0 属性 class

例如

  Configuration config = new org.hibernate.cfg.Configuration();
  config.setProperty("hibernate.c3p0.maxStatementsPerConnection","50");

这很好用,因为这意味着在不同平台上一切都一样(Mac、Windows、Linux、Docker 等)

但是我无法获得任何 c3p0 调试输出,我通过添加

取得了一些成功
-Dcom.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog

但使用

config.setProperty("hibernate.c3p0.com.mchange.v2.log.MLog","com.mchange.v2.log.jdk14logging.Jdk14MLog");

反而没有效果。

是否可能,因为添加为系统属性需要修改以构建适用于所有平台的脚本(我们提供了适当的安装程序,而不仅仅是一个 jar 文件)。

设置配置 属性 后尝试调用 com.mchange.v2.log.MLog.refreshConfig(null, null)

命令行设置与 运行 时设置的一个问题是 class 加载通常会触发 属性 的读取。这意味着在 运行 时间值在您的代码设置之前被读取。