hibernate - Log4j2 日志 hibernate 参数绑定(bind)

标签 hibernate binding parameters log4j2

有没有人有一个如何用 log4j2 记录 hibernate sql 参数的例子?我知道如何使用 log4j 1.x 记录它们,但我无法使用 log4j 的 2.0 beta 3 版本(迄今为止的最新版本)来执行此操作。

谢谢。

最佳答案

我看到了对这个问题的其他回复,但没有一个记录 只是 sql 替换参数 .如果您设置 org.hibernate.type记录器类别,您将获得大量输出!

我只想看到替换的值。如果这也是您想要的,请继续阅读...

总之,您要配置的 Logger 类别称为:

org.hibernate.type.descriptor.sql.BasicBinder

您需要将其值设置为 TRACE
也就是说,下面是.properties样式和 XML 配置,使这项工作。
.properties风格:
log4j.rootLogger=INFO, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n
# Below is the line to dump ONLY the bind variables
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

XML:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="Console" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
    </layout> 
  </appender> 

  <root> 
    <priority value="DEBUG" /> 
    <appender-ref ref="Console" /> 
  </root>

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

</log4j:configuration>

输出将如下所示:
10:58:47,631 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] (Thread-5212 (HornetQ-client-global-threads-475186579)) binding parameter [1] as [BIGINT] - 165
10:58:47,631 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] (Thread-5212 (HornetQ-client-global-threads-475186579)) binding parameter [2] as [BIGINT] - 1390496100822

玩得开心!

关于hibernate - Log4j2 日志 hibernate 参数绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076487/

相关文章:

java - Hibernate:如何获取当前 session 中所有对象的列表

java - 将子类中定义的方法设置为父类引用或将其添加到父对象

postgresql - 如何在 Hibernate 中映射 PostgreSQL Interval 列类型?

silverlight - ItemsControl 的内部属性在绑定(bind)到 ItemsSource 时未更新

xml - 使用参数值,如 xslt 中的 select

hibernate - 使用 Hibernate 问题持久化长字符串

c# - 绑定(bind)突然获得旧值

c# - 在 WPF 中使用附加属性

c++ - 可选择将函数变量作为参数

javascript - 将范围作为参数传递到要保存的函数中