2013-05-06 5 views
14

Я пытаюсь войти пулы соединений для org.apache.commons.dbcp.BasicDataSource с помощью log4jкаротаж Пулы соединений для org.apache.commons.dbcp.BasicDataSource с пружиной

Я использую рамки пружины для инъекций дао слоя.

Когда я увидел код внутри org.apache.commons.dbcp.BasicDataSource, регистратор не используется. Так что кажется невозможным зарегистрировать сообщение для пула для меня.

Но снова я увидел эту ссылку http://forum.springsource.org/showthread.php?38306-Connection-Pooling-debug-info.
Некоторые люди говорили поставить log4j.category.org.apache.dbcp=DEBUG. Но я не мог найти правильный ответ.
Так что мой вопрос в том, может ли протокол объединения пула использовать log4j для org.apache.commons.dbcp.BasicDataSource?

+0

Я видел подобные комментарии к этому эффекту сам и никогда не повезло получить какой-либо журнал из DBCP. Это, очевидно, довольно раздражает. Кажется, это невозможно, к сожалению ...:// – Michael

+1

У меня тоже вопрос! Я пытаюсь установить следующую конфигурацию в моем log4j.xml, но не использовать. Я использую ГСБД 1.4 <регистратор имя = "log4j.category.org.apache.dbcp"> <значение уровня = "DEBUG" /> <регистратор имя = "org.apache.commons.dbcp"> <значение уровня = "DEBUG" /> okwap

+1

http://stackoverflow.com/questions/3597219/logging-in-dbcp может быть полезным, поскольку, похоже, он подтверждает, что DBCP не регистрируется. – reallynice

ответ

5

Похоже, что BasicDataSource имеет только PrintWriter, а не Logger как переменную-член. Поэтому вам придется вызывать BasicDataSource.setLogWriter (printWriter), где printWriter просто обертывает ваш log4j logger.

Я наткнулся на это: http://www.opensource.apple.com/source/JBoss/JBoss-737/jboss-all/common/src/main/org/jboss/logging/util/LoggerWriter.java

, который, кажется, делает именно это. Я не знаю инструмент в Apache Commons, который делает что-то подобное, но класс в ссылке выше кажется, что он выполнит то, что вы ищете.

2

ее слишком поздно, так как этот вопрос был задан вопрос, но это, как я установил вопрос:

Specify регистратор к драйверу в JDBC-URL

new BasicDataSource().setUrl("jdbc:mysql://localhost/DBName?logger=com.mysql.jdbc.log.Slf4JLogger&profileSQL=true"); 
Смежные вопросы