如何从JBoss 7中的Hibernate获取JDBC绑定参数?

Ant*_* O. 11 debugging hibernate jboss7.x

我只想简单地获取Hibernate绑定到问号"?"后面的查询的值.在JBoss 7上.

所以我正在编辑standalone/configuration/logging.properties以添加这个:

logger.org.hibernate=DEBUG
logger.org.hibernate.type=ALL
Run Code Online (Sandbox Code Playgroud)

但我的控制台,日志文件中都没有任何结果......我错过了什么?

Ant*_* O. 18

哇,它不像以前的版本......我终于找到了配置JBoss 7日志记录Hibernate 4日志配置官方方法!

你要做的是编辑standalone/configuration/standalone.xml(你的配置文件domain)并搜索<subsystem xmlns="urn:jboss:domain:logging:1.1">标签.

然后在<console-handler name="CONSOLE",我已经将级别信息切换到TRACE(<level name="TRACE")并添加了<logger category="org.hibernate">.

这是部分XML:

<subsystem xmlns="urn:jboss:domain:logging:1.1">
    <console-handler name="CONSOLE" autoflush="true">
        <level name="TRACE"/>
        <formatter>
            <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
        </formatter>
    </console-handler>
    ...
    <logger category="org.hibernate.type.descriptor.sql.BasicBinder">
        <level name="TRACE"/>
    </logger>
    ...
Run Code Online (Sandbox Code Playgroud)

我从博客文章中找到了另一个更好的(因为它记录了所有JDBC方法调用,而不仅仅是基本绑定)解决方案:spy="true"在类别中添加<datasource>声明和TRACE日志jboss.jdbc.spy:

<datasource jta="true" jndi-name="java:jboss/datasources/myDS" pool-name="myPool" enabled="true" use-java-context="true" spy="true" use-ccm="true">
Run Code Online (Sandbox Code Playgroud)

和记录器(in <subsystem xmlns="urn:jboss:domain:logging:1.1">):

<logger category="jboss.jdbc.spy">
    <level name="TRACE"/>
</logger>
Run Code Online (Sandbox Code Playgroud)