2

直到最近,我们为每个查询创建了一个新的数据库连接。每个查询都是使用 connection.prepareStatement(query) 设置的,我们可以使用 prepareStatement.toString() 将这些查询记录到我们的记录器 (java.util.logging) 中。这是使用 postgresql JDBC 驱动程序。

现在我们已经切换到使用 c3p0 来管理连接池,不幸的是 prepareStatement.toString() 不再返回准备好的查询语句。

读过c3p0 日志记录可以定向到标准日志记录工具,但不幸的是我无法找到这些消息的去向。我在哪里可以找到这些消息?Glassfish 3 在 NetBeans 中的控制台声明已启用调试。

信息:初始化 c3p0-0.9.1.2 [建于 2007 年 5 月 21 日 15:04:56;调试?真的; 追踪:10]
4

2 回答 2

3

我不确定,如果 c3p0 的日志记录是您真正想要的?

我建议使用log4jdbc,它可以记录任何 JDBC 查询(带参数),甚至为您提供指向 JDBC/Hibernate/... 语句的堆栈跟踪,即使您使用的是连接池(使用该选项-Dlog4jdbc.debug.stack.prefix=com.mycompany.myapp)。它还可以显示时间信息等等。

于 2011-08-07T10:18:16.697 回答
2

日志记录似乎像日志所说的那样(调试?真),但是如果您阅读帖子中链接上的,您会发现应该检查以找到正确文件的设置选项。

如果您最终登录到所谓的最后手段选项,它应该登录System.Err,这可能会导致问题:这篇文章告诉您 System.Err 默认情况下并不总是在任何日志文件中可见!

因此,请继续尝试前面提到的框中的其他选项,或者使用我链接的帖子的答案部分的修复:)

于 2011-08-06T22:23:49.697 回答