我正在尝试使用log4j
记录org.apache.commons.dbcp.BasicDataSource
的连接池
我使用spring框架进行dao层注入。
当我在org.apache.commons.dbcp.BasicDataSource
内看到代码时,没有使用Logger。因此,似乎无法为我记录池信息。
但我又看到了这个链接
http://forum.springsource.org/showthread.php?38306-Connection-Pooling-debug-info。
有人说要放
log4j.category.org.apache.dbcp=DEBUG
。但我找不到正确的答案
所以我的问题是,可以使用log4j为org.apache.commons.dbcp.BasicDataSource
连接汇集日志吗?
答案 0 :(得分:5)
似乎BasicDataSource只有一个PrintWriter,而不是一个Logger作为成员变量。所以你必须调用BasicDataSource.setLogWriter(printWriter),其中printWriter只是包装你的log4j记录器。
这似乎正是如此。我不知道Apache Commons中的一个工具做了类似的事情,但上面链接中的类似乎可以完成你想要的。
答案 1 :(得分:4)
自提出问题以来已经太迟了,但这是我解决问题的方法:
在JDBC URL中指定驱动程序的记录器
new BasicDataSource().setUrl("jdbc:mysql://localhost/DBName?logger=com.mysql.jdbc.log.Slf4JLogger&profileSQL=true");