有没有人有一个如何用 log4j2 记录休眠 sql 参数的例子?我知道如何使用 log4j 1.x 记录它们,但我无法使用 log4j 的 2.0 beta 3 版本(迄今为止的最新版本)来执行此操作。
谢谢。
有没有人有一个如何用 log4j2 记录休眠 sql 参数的例子?我知道如何使用 log4j 1.x 记录它们,但我无法使用 log4j 的 2.0 beta 3 版本(迄今为止的最新版本)来执行此操作。
谢谢。
我已经看到了对这个问题的其他回复,但没有一个只记录 sql 替换参数。如果您设置org.hibernate.type
Logger 类别,您将获得大量输出!
我只想看到替换的值。如果这也是您想要的,请继续阅读...
总之,您要配置的 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
玩得开心!