【发布时间】:2012-04-13 00:49:36
【问题描述】:
我已经从 JDBC 实现了一个连接池,以获取和关闭我的数据访问对象的连接,以便使用 java 从 mysql 数据库中存储和检索数据。
我还想通过名为 JDBCAppender 的附加程序将主要操作和异常存储在一个名为 log4j 的库中。
在使用连接池之前,事件的日志记录很好,因为一次只有一个连接被用于操作。现在连接同时从池中被抓取并交还给池,一旦一个连接(第一个)被关闭,记录器似乎不知道如何获得另一个连接。
如何登录到有连接池的数据库?
我自己对此进行了调查,我需要做的就是覆盖 JDBCAppender.java(位于 apache log4j 1.2.16 库中)中的 getConnection() 方法......但我有两个问题。
我需要在 LOG4J 1.2.16 jar 文件中有我的连接池实现类吗? 假设我从池中获得连接,如何将 LOG4J 1.2.16 Java 文件重新编译成 jar 文件?
根据您目前所阅读的内容,我可以提供我的连接池实现和 JDBCAppender java 类,我们可以从那里获取它...
【问题讨论】:
-
@duffymo,我为大写锁定表示歉意,我不是故意的,先生。我正在努力,这就是我寻求帮助的原因,我知道我很亲密,我正在努力让一些东西发挥作用:S ...
-
请参考此链接 [logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/jdbc/… 以查看解决此问题的建议...谢谢
-
关于链接,您是说您尝试了该链接并未能获得预期的结果?
-
@贝克斯。如果有负赏金模式,我会给这个问题-50。请处理 duffymo 的反馈。首先,我编辑了问题。
-
@duffymo 感谢您的反馈,先生。我也感谢@Flukey 和@Jayan 的建议...@duffymo,我已经尝试过该链接但没有得到想要的结果先生,我只在数据库中获取使用一个连接的操作的日志(只有第一个连接)其余的日志记录不会发生......我知道我需要覆盖 log4j 库的 JDBCAppender java 类的 getConnection() 方法才能从我的连接池中获取连接,但我不知道是否我需要在新的 log4j 中包含 Apache dbcp 的类(我用于我的池)。
标签: java mysql jdbc log4j connection-pooling