Hibernate-SQL loggen mit log4j

Da sich im Netz eine Vielzahl von Artikeln, Foreneinträgen und Blogs mit dem Thema Hibernate & log4j beschäftigen, war ich etwas verwundert, dass ich keine Lösung für das folgende Problem ad hoc finden konnte.

  • log4j soll alle von Hibernate generierten SQL-Queries in eine eigene Datei schreiben.
  • Hibernate (Version 3.2.6.) befindet sich des Applicationserver JBoss 4.2.2
  • Die log4j-Konfiguration muss im XML-Format vorliegen

Keine sonderlich exotische Problemstellung, wie ich finde. Meine Lösung sieht wie folgt aus.

In die Datei  jboss-log4j.xml muss ein zusätzlicher Appender hinzugefügt werden. Dieser schreibt in die Datei sql.log

<appender name=“SQL_FILE“>
<errorHandler/>
<param name=“File“ value=“${jboss.server.log.dir}/sql.log“/>
<param name=“Append“ value=“false“/>
<param name=“Threshold“ value=“DEBUG“/>

<!– Rollover at midnight each day –>
<param name=“DatePattern“ value=“‚.’yyyy-MM-dd“/>

<!– Rollover at the top of each hour
<param name=“DatePattern“ value=“‚.’yyyy-MM-dd-HH“/>
–>

<layout>
<!– The default pattern: Date Priority [Category] Message\n –>
<param name=“ConversionPattern“ value=“%d %-5p [%c] %m%n“/>

<!– The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
<param name=“ConversionPattern“ value=“%d %-5r %-5p [%c] (%t:%x) %m%n“/>
–>
</layout>
</appender>

Zusätzlich muss zwei weitere Kategorien hinzugefügt werden, die mit den neuen Appender verknüpft sind. Die Kategorie org.hibernate.SQL veranlasst das Loggen  aller SQL-Queries. Die weitere Kategorie org.hibernate.loader.Loader veranlasst das Loggen des Hibernate Loaders. 

<category name=“org.hibernate.SQL“>
<priority value=“TRACE“/>
<appender-ref ref=“SQL_FILE“ />
</category>

<category name=“org.hibernate.loader.Loader“>
<priority value=“TRACE“/>
<appender-ref ref=“SQL_FILE“ />
</category>

Wichtig!!! Ich habe leider keinen  Weg gefunden die Bind Variablen zu loggen.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s