【发布时间】:2011-11-03 01:17:49
【问题描述】:
令人讨厌的是,Hibernate 在某些情况下似乎喜欢将日志写入 log4j 本身。我不希望它。我希望它在出现问题时抛出异常,就像一个好的库那样。
有谁知道这是否可行,更重要的是,我该怎么做?
例如,我收到此错误级别日志“尝试获取锁定时发现死锁;尝试重新启动事务”。如果它至少包含一个堆栈跟踪,或者可能导致该死锁的查询,它就不会那么糟糕了。但事实并非如此,因此很难调试其中一些案例。
我查看了休眠映射 dtd 文件、休眠配置 xml 文件和休眠配置 dtd 文件,但没有什么可以作为控制日志记录的方法。
我在 log4j.properties 文件中看到以下几行:
# Don't log Hibernate flushing exceptions (usually StaleStateExceptions)
log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=FATAL
log4j.logger.org.hibernate.jdbc.AbstractBatcher=FATAL
如果我将某些东西标记为“致命”,休眠会抛出异常吗?
我有点迷失在 Hibernate 沼泽中,所以我很感激一些方向。作为上下文,我已经使用 hibernate 2 年了,但我绝不是这方面的专家。
【问题讨论】:
-
我认为 hibernate 正在抛出异常,这可能会被您的应用程序吞噬。您能否在导致检查此日志消息的休眠调用周围放置一个 try catch。
-
我们对系统中的几乎所有内容都进行了尝试,包括导致这些日志的调用。我确实知道异常是如何工作的。
标签: java hibernate exception log4j