Java Hibernate SQL参数日志记录

Java Hibernate SQL参数日志记录,java,hibernate,logging,Java,Hibernate,Logging,更新 这包含标记为正确的答案,但它是从2009年开始的!Hibernate日志记录配置取决于版本。这只写了几行。我试过这个和其他很多方法,但它们对我不起作用 如果有人能帮忙,请询问我应该在描述中添加什么。谢谢 结束更新 问题是,当显示所有SQL参数值时,我无法设置日志记录方式。请帮忙做这件事 我搜索了一下,发现应该设置日志属性 org.hibernate.type至ALL 我试图在log4j.properties文件中设置它: log4j.logger.org.hibernate.type=AL

更新

这包含标记为正确的答案,但它是从2009年开始的!Hibernate日志记录配置取决于版本。这只写了几行。我试过这个和其他很多方法,但它们对我不起作用

如果有人能帮忙,请询问我应该在描述中添加什么。谢谢

结束更新

问题是,当显示所有SQL参数值时,我无法设置日志记录方式。请帮忙做这件事

我搜索了一下,发现应该设置日志属性

org.hibernate.typeALL

我试图在log4j.properties文件中设置它:

log4j.logger.org.hibernate.type=ALL
我试着在log4j.xml中设置它

   <logger name="org.hibernate.type">
       <level value="trace"/>
   </logger>

我知道log4j肯定会读取xml配置,因为如果我在log4j.xml中放置了一些错误的标记,日志中就会出现错误

不幸的是,这不起作用。文件可能已损坏。我所能做的就是将-SQL命令写入控制台,但只能使用hibernate.cfg.xml

<property name="hibernate.show_sql">true</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">true</property>
true
如果我在log4j.xml中设置org.hibernate.SQL属性,它将不起作用:

   <logger name="org.hibernate.SQL">
       <level value="debug"/>
   </logger>

正如我在web上发现的,hibernate的日志设置取决于它的版本。在我的项目中,我无法设置hibernate版本,但可以在本地工作站上处理依赖项。这里是来自my pom.xml的相关数据

    <!--hibernate -->        
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.1.8.Final</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-annotation-processor</artifactId>
        <version>4.1.0.Final</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.2.0.Final</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>     
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.1.8.Final</version>
        <scope>compile</scope>
        <type>jar</type>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- Hibernate Spatial for mysql.  This will include Hibernate Spatial Core and JTS -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-spatial</artifactId>
        <version>4.0.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- custom type mappings for java 8 time classes -->
    <!--hibernate -->        
    <dependency>
        <groupId>ca.gfisystems</groupId>
        <artifactId>hibernate-utils</artifactId>
        <version>1.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- c3p0 used for postgresql connection -->
    <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
    </dependency>
    <!-- hibernate c3p0 connection pooling -->        
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>4.1.8.Final</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- logback -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.3</version>
    </dependency>

org.hibernate
休眠实体管理器
4.1.8.最终版本
org.slf4j
slf4j api
org.hibernate
hibernate验证程序注释处理器
4.1.0.1最终版本
org.slf4j
slf4j api
org.slf4j
slf4j-log4j12
1.7.7
org.slf4j
slf4j api
1.7.7
org.jboss.logging
jboss日志
3.2.0.1最终版本
log4j
log4j
1.2.16
org.hibernate
冬眠核心
4.1.8.最终版本
编译
罐子
org.slf4j
slf4j api
org.hibernate
冬眠空间
4.0.1
org.slf4j
slf4j api
ca.gfis系统
冬眠乌贼
1
org.slf4j
slf4j api
c3p0
c3p0
0.9.1.2
org.hibernate
hibernate-c3p0
4.1.8.最终版本
org.slf4j
slf4j api
回写
回归经典
1.1.3
回写
回溯堆芯
1.1.3

我也面临同样的问题。尝试了许多解决方案,但系统并没有用SQL语句显示参数

最后我做了以下步骤,解决了我的问题

将log4j库的版本从版本(1.2.16)更改为(1.2.11)以进行测试

在log4j.properties中添加了以下行

log4j.logger.org.hibernate=INFO
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
在hibernate.cfg.xml中

<property name="hibernate.show_sql">true</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">true</property>
true
真的
真的
然后问题就解决了


我分析的主要问题是库版本(1.2.16)。可能是,在版本(log4j-1.2.16)上有一些其他配置来显示参数。

可能与我看到的那个主题和许多其他主题重复,但是发布在那里的解决方案对我不起作用。我试图理解为什么。你认为我应该在我的问题上补充点什么吗?有什么不清楚的吗?@Pavlo伊什瓦尔·拉尔已经回答了你