Zwar kannte ich die Möglichkeit, über die üblichen Logging-Einstellungen
<logger name="org.hibernate.SQL">
<level value="debug"/>
</logger>
<logger name="org.hibernate.type">
<level value="debug"/>
</logger>
Statements sichtbar zu machen. Allerdings wurden die Query Parameter mit Fragezeichen versehen und anschließend separat aufgelistet. Möchte man die Statements vollständig und gut lesbar loggen, sind drei Schritte durchzuführen:
Und schon werden wunderbar lesbare SQL-Statements rausgeloggt. Dies ist ein Feature, das ich schon viele Jahre gesucht habe und meiner Meinung nach sehr nützlich sein kann.
- In der log4j.xml folgende Einstellung vornehmen:
<logger name="jdbc.sqltiming">
<level value="INFO" />
</logger>
- Die Datenquelle anpassen (z. B. im JBoss im "deploy"-Verzeichnis)
<connection-url>jdbc:log4jdbc:oracle:thin:@localhost:1521:XE</connection-url> <driver-class>net.sf.log4jdbc.DriverSpy</driver-class>
- Den Proxy-Treiber log4jdbc4-1.2.jar ins lib-Verzeichnis des Applikations-Servers (oder der Anwendung) kopieren
Und schon werden wunderbar lesbare SQL-Statements rausgeloggt. Dies ist ein Feature, das ich schon viele Jahre gesucht habe und meiner Meinung nach sehr nützlich sein kann.