WebLogic - 关闭服务器中的Hibernate日志

时间:2013-10-16 18:21:43

标签: hibernate jpa log4j weblogic slf4j

由于表中的行级锁定,每当查询无法更新记录时,我都会在weblogic服务器日志中遇到烦人的日志。由于多个应用程序将尝试同时更新记录,因此需要锁定。该应用程序旨在处理这些异常并在间隔后重试。但是每次查询失败时,Hibernate都会将错误日志写入服务器输出文件。

WARNING: SQL Error: -244, SQLState: IX000
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Could not do a physical-order read to fetch next row.
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: -113, SQLState: IX000
16-Oct-2013 19:15:00 org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: ISAM error: the file is locked.
16-Oct-2013 19:15:00 org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not update: [uk.co.orange.rp.collections.entity.PpsServerLock#2]
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        .
        .
        .

在Eclipse中,我可以通过在类路径中添加slf4j-log4j12 jar来避免登录控制台。但是我无法在WebLogic应用程序中实现相同的功能。

即使尝试在weblogic-application.xml上添加以下内容,也没有运气。

<prefer-application-packages>
    <package-name>org.slf4j.*</package-name>
    <package-name>org.apache.log4j.*</package-name>
</prefer-application-packages>

有人可以建议还可以做些什么。

我使用的是Hibernate-3.3.2,Log4j-1.2.15,slf4j-1.5.6,JPA-1.1

此致

2 个答案:

答案 0 :(得分:0)

正如您所提到的,您使用sl4j作为日志记录外观并将log4j用作底层日志记录库,您必须在应用程序类路径中的某处使用特定于应用程序的log4j属性(或xml config)文件。尝试将org.hibernate的log4j记录器设置为FATAL,或者将级别设置为大于应用程序代码中捕获异常的任何级别。

答案 1 :(得分:0)

我找到了原因,我在服务器类路径中同时拥有slf4j-log4j和slf4j-jdk14 jar。我从classpath中删除了slf4j-jdk14,一切都按预期工作。由于我不想要任何hibernate日志,因此log4j.xml不需要进行任何更改。

全部谢谢。

相关问题