nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

JBoss上でJDBCログ(DBアクセスログ)を取る

JBoss自体にはJDBCログを出力する機能がないので、外部ライブラリを導入する。log4jdbcというライブラリが簡単。動作はlog4jdbc 1.2 beta 2というバージョンで確認した。

jarをlog4jdbcのサイトからダウンロードして$JBOSS_HOME/common/lib/ディレクトリに置く。依存ライブラリとしてslf4jが必要だがJBossに最初から含まれているので無視して大丈夫だ問題ない。$JBOSS_HOME/server/$PROFILE/deploy/hsqldb-ds.xmlを開いて以下のようにをちょこっと修正して完了。あとはconf/jboss-log4j.xmlでDEBUGログの出力が有効であればログがもりもり出るようになる。必要があればいくつか出力レベルを絞ったりしておしまい。

<connection-url>jdbc:log4jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
<!--
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
-->

<driver-class>net.sf.log4jdbc.DriverSpy</driver-class>
<!--
<driver-class>org.hsqldb.jdbcDriver</driver-class>
-->