2013-03-15 13 views
8

は、私は次のようしている:私のlog4j.xmlでHibernateログにSQLパラメータを表示するには?私のhibernate.cfg.xmlで

<property name="show_sql">true</property> 

を、私は次のようしている:私のstdout.txtで

<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> 

を、私はそれを見ることができます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=? 

しかし、SQLのパラメータも記録したいので、表示しません。

アペンダーはhbn.txtにログするように定義されていますが、SQLステートメントはhbn.txtではなくstdout.txtに記録されます。私はなぜそれが起こっているのか分からない。

答えて

11

はあなたのアペンダのThreadholdレベルをチェックするのを忘れないでください、あなたのlog4j.xmlに

<logger name="org.hibernate.type.descriptor.sql.BasicBinder"> 
    <level value="TRACE"/> 
</logger> 

をこの設定を追加します。

+0

私はそれを私のlog4j.xmlに追加しましたが、まだパラメータロギングを取得していません。 – pacoverflow

+0

また、をアペンダーに追加しましたが、それでも動作しません。 – pacoverflow

+0

これは私のために完璧に動作します: <ロガー名=「org.hibernate.type」> \tあなたが使用しているものログマネージャ休止を指示する必要があり –

関連する問題