W moim hibernate.cfg.xml, mam następujący:Jak wyświetlić parametry SQL w dzienniku hibernacji?
<property name="show_sql">true</property>
W moim log4j.xml, mam następujący:
<logger name="org.hibernate" additivity="false">
<level value="TRACE"/>
<appender-ref ref="hbn_log"/>
</logger>
<category name="org.hibernate.SQL" additivity="false">
<priority value="TRACE"/>
<appender-ref ref="hbn_log"/>
</category>
<category name="org.hibernate.type" additivity="false">
<priority value="TRACE"/>
<appender-ref ref="hbn_log"/>
</category>
<logger name="org.hibernate.type.descriptor.sql.BasicBinder">
<level value="TRACE"/>
<appender-ref ref="hbn_log"/>
</logger>
<logger name="org.hibernate.event.def.DefaultLoadEventListener" additivity="true">
<level value="all"/>
<appender-ref ref="hbn_log"/>
</logger>
<logger name="org.hibernate.cache.ReadWriteCache" additivity="true">
<level value="all"/>
<appender-ref ref="hbn_log"/>
</logger>
<appender name="hbn_log" class="com.adventnet.management.log.NMSRollingFileAppender">
<param name="File" value="logs/hbn.txt"/>
<param name="MaxFileSize" value="1MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{dd MMM yyyy HH:mm:ss:SSS}] %-5c{2}: %m%n"/>
</layout>
<param name="Threshold" value="TRACE"/>
</appender>
W moim stdout.txt, widzę, że loguje instrukcję SQL:
[13 Apr 2013 22:03:59:199] SYS_OUT: Hibernate: select this_.EMSID as EMSID195_0_, this_.COUNTER as COUNTER195_0_, this_.TIMESTAMP as TIMESTAMP195_0_, this_.UPDATETYPE as UPDATETYPE195_0_, this_.OBJECTTYPE as OBJECTTYPE195_0_, this_.OBJECTID as OBJECTID195_0_, this_.OBJECT as OBJECT195_0_ from WebNmsDB.UpdateData this_ where this_.EMSID=?
Ale chcę, aby również rejestrował parametr SQL i nie wyświetlał go.
Inną sprawą jest to, że appender jest zdefiniowany do logowania do hbn.txt, ale instrukcja SQL jest logowana do stdout.txt, a nie hbn.txt. Nie wiem, dlaczego tak się dzieje.
Dodałem to do mojego log4j.xml i nadal nie otrzymuję żadnego rejestrowania parametrów. – pacoverflow
Dodałem także do programisty i nadal nie działa. –
pacoverflow
Działa to doskonale dla mnie: org.hibernate.type \t \t \t –