首页 > 解决方案 > 如何在控制台中禁用休眠登录?

问题描述

我正在尝试在我的控制台中禁用休眠登录,我尝试了以下操作。以下代码属于我的 app-config.xml:-

<bean id="sessionFactory" name="sourceFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="myprojds"/>
    <property name="packagesToScan" value="com.myproj" />
    <property name="hibernateProperties">
        <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
                <prop key="hibernate.jdbc.batch_size">50</prop>
                <prop key="hibernate.default_batch_fetch_size">50</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.use_sql_comments">false</prop>
                <prop key="hibernate.generate_statistics">false</prop>
                <prop key="hibernate.format_sql">false</prop>
                <prop key="hibernate.hbm2ddl.auto">false</prop>
                <prop key="hibernate.enable_lazy_load_no_trans">true</prop>
            </props>
    </property>
</bean> 

以下代码属于 log4j.xml:-

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<appender name="appender1" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="/opt/info_${current.date}.log"/>
    <param name="append" value="false"/>
    <param name="maxFileSize" value="2MB"/>
    <param name="maxBackupIndex" value="200"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %5p (%F:%M:%L) - %m%n" />
    </layout>
</appender>
<root>
    <priority value ="error" />
    <appender-ref ref="appender1"/>
</root>
<logger name="org.hibernate"  additivity="false">
    <appender-ref ref="appender1"/> 
    <level value="error" /> 
</logger>

 </log4j:configuration> 

我仍然不确定为什么我在控制台中看到休眠日志。请帮忙

标签: springhibernate

解决方案


在较新的休眠版本中,日志记录是通过使用 JBoss Logging 作为许多记录器实现之间的桥梁来完成的。This thread has an discussion on how to set slf4j in hibernate 4,但问题非常相似。您可能必须调试此类检查 hibernate 如何选择它的日志记录提供程序。也许你遇到了类路径问题(hibernate 没有在类路径中找到 log4j)。您可能必须设置一些系统属性或创建一个服务加载器文件(第一个链接对此有一些提示),以便 hibernate 正确选择日志记录提供程序。


推荐阅读