gpt4 book ai didi

sql - 如何在 Hibernate 日志中显示 SQL 参数?

转载 作者:行者123 更新时间:2023-12-04 06:21:05 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to print a query string with parameter values when using Hibernate

(31 个回答)


8年前关闭。




在我的 hibernate.cfg.xml 中,我有以下内容:

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

在我的 log4j.xml 中,我有以下内容:
<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>

在我的 stdout.txt 中,我可以看到它记录了 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 的参数,但它没有显示它。

另一件事是,appender 被定义为记录到 hbn.txt,但 SQL 语句被记录到 stdout.txt 而不是 hbn.txt。我不知道为什么会这样。

最佳答案

将此配置附加到您的 log4j.xml

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

不要忘记检查您的 appender 的 Threadhold 级别。

关于sql - 如何在 Hibernate 日志中显示 SQL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15425377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com