直到最近,我们为每个查询创建了一个新的数据库连接。每个查询都使用connection.prepareStatement(query)进行设置,我们能够使用preparedStatement.toString()将这些查询记录到我们的记录器(java.util.logging)中。这是使用postgresql JDBC驱动程序。
现在我们已经切换到使用c3p0来管理连接池,不幸的是,prepareStatement.toString()不再返回准备好的查询语句。
我有read可以将c3p0日志记录定向到标准日志记录工具,但遗憾的是我无法找到这些消息的去向。我在哪里可以找到这些消息? NetBeans中的Glassfish 3控制台声明已启用调试。
INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
答案 0 :(得分:3)
我不确定,如果c3p0的日志记录是你真正想要的吗?
我建议使用log4jdbc,它可以记录任何JDBC查询(带参数),甚至为您提供指向JDBC / Hibernate / ...语句的堆栈跟踪,即使您正在使用连接池(使用选项-Dlog4jdbc.debug.stack.prefix=com.mycompany.myapp
)。它还可以显示时间信息等等。
答案 1 :(得分:2)