如何在我的休眠模式中启用 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 加载通常会触发 属性 的读取。这意味着在 运行 时间值在您的代码设置之前被读取。
我正在使用 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 加载通常会触发 属性 的读取。这意味着在 运行 时间值在您的代码设置之前被读取。