Как я могу заставить java Hibernate выдавать исключения вместо регистрации сообщений logj4? - PullRequest
0 голосов
/ 03 ноября 2011

Досадно, что в некоторых случаях Hibernate, похоже, предпочитает записывать логи в сам log4j. Я не хочу этого. Я хотел бы, чтобы он генерировал исключение, когда что-то идет не так, как хорошая библиотека.

Кто-нибудь знает, возможно ли это, и что более важно, как мне это сделать?

Например, я получаю этот журнал уровня ОШИБКИ "Обнаружена тупиковая ситуация при попытке получить блокировку; попробуйте перезапустить транзакцию". Не было бы так плохо, если бы он хотя бы включал трассировку стека или, возможно, запрос, который привел к этой тупиковой ситуации. Но это не так, поэтому было сложно отладить некоторые из этих случаев.

Я просматривал dtd-файл hibernate mapping, xml-файл конфигурации hibernate и dtd-файл конфигурации hibernate, но мне не удалось найти способ контролировать ведение журнала.

Я вижу следующие строки в моем файле 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 выдавать исключение, если я маркирую определенные вещи как "FATAL"?

Я немного заблудился в болоте Спящего, поэтому я был бы признателен за направление. В качестве контекста я работаю с Hibernate в течение 2 лет, но я ни в коем случае не эксперт в этом.

1 Ответ

0 голосов
/ 19 июля 2013

Мы обнаружили, что hibernate на самом деле генерирует исключения, но также регистрирует.Мы установили наш log4j таким образом, чтобы hibernate не регистрировал исключения из определенных классов, как я написал в своем вопросе:

# Don't log Hibernate flushing exceptions (usually StaleStateExceptions)
log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=FATAL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...