вторник, 7 октября 2008 г.

JDBC Logging Driver

В процессе девелопмента часто бывает необходимо посмотреть, какие запросы выполняются, причем обычное логирование помогает мало - вместо реальных параметров, используемых в SQL, стоят малоинформативные знаки вопроса. Чтобы это обойти и все-таки увидеть те запросы, которые реально исполняются, можно использовать сабж. Скачать его можно по адресу  www.rkbloom.net/logdriver

Конфигурировать его достаточно просто, на примере это выглядит так: 

hibernate.connection.driver_class=net.rkbloom.logdriver.LogDriver
#hibernate.connection.driver_class=oracle.jdbc.OracleDriver
hibernate.connection.url=jdbc:log:oracle.jdbc.OracleDriver:oracle:thin:@192.168.32.29:1521:UTF8
#hibernate.connection.url=jdbc:oracle:thin:@192.168.32.29:1521:UTF8

жирным выделено подклюение логирующего драйвера, нежирным - типовое подключение к JDBC.

Также необходимо сконфигурировать log4j примерно следующим образом:
## Hibernate logging
log4j.appender.HibernateAppender=org.apache.log4j.FileAppender
log4j.appender.HibernateAppender.file=D:/temp/hibernate.log
log4j.appender.HibernateAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.HibernateAppender.layout.ConversionPattern=[%d] %-5p - %m%n
log4j.additivity.org.hibernate=true
log4j.additivity.net.rkbloom.logdriver=true

# Turn this up to DEBUG to get detailed logging info
log4j.logger.org.hibernate.SQL=info,HibernateAppender
log4j.logger.org.hibernate=info,HibernateAppender
log4j.logger.net.rkbloom.logdriver.LogPreparedStatement=DEBUG,HibernateAppender
log4j.logger.net.rkbloom.logdriver.LogStatement=DEBUG,HibernateAppender
log4j.logger.net.rkbloom.logdriver.LogCallableStatement=DEBUG,HibernateAppender
log4j.logger.net.rkbloom.logdriver.LogConnection=DEBUG,HibernateAppender

Комментариев нет: