log4j2 log hibernate参数绑定

gro*_*rei 6 parameters binding hibernate log4j2

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

谢谢.

J S*_*rry 5

我已经看到了对该问题的其他回答,但没有一个记录sql替换参数。如果您设置org.hibernate.typeLogger类别,将获得一吨输出!

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

总之,您要配置的记录器类别称为:

org.hibernate.type.descriptor.sql.BasicBinder
Run Code Online (Sandbox Code Playgroud)

您需要将其值设置为 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
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

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
Run Code Online (Sandbox Code Playgroud)

玩得开心!