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