我正在尝试在控制台中禁用休眠日志,我尝试了以下操作。 以下代码属于我的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>
我仍然不确定为什么我会在控制台中看到休眠日志。请帮助
答案 0 :(得分:1)
在较新的休眠版本中,通过使用JBoss Logging作为许多记录器实现之间的桥梁来完成记录。 thread讨论了如何在休眠4中设置slf4j,但问题非常相似。您可能必须调试class才能检查休眠状态如何选择其日志记录提供程序。也许您遇到了类路径问题(休眠未在类路径中找到log4j)。 您有可能必须设置一些系统属性或创建服务加载程序文件(第一个链接对此有一些提示),以便休眠状态正确选择日志记录提供程序。
答案 1 :(得分:0)
这是RollingFileAppender的配置(登录到/opt/info_${current.date}.log上的文件,而不是控制台上的文件)。查看配置中是否有ConsoleAppender。如果没有ConsoleAppender,则您可能会在代码本身中看到来自system.out的控制台日志。