2014-01-24 3 views
3

Я использую Log4j 2 в своем проекте, чтобы записывать журналы сыновей в таблицу базы данных. Эти события идентифицируются на основе определенной пары ключей/значений MDC. Моя озабоченность по поводу непроверенного исключения LoggingException, которое этот appender может выкинуть из своего метода добавления. Эти журналы базы данных генерируются внутри асинхронного транзакционного процесса, и я не хочу, чтобы основной процесс зависел от потенциального исключения, вызванного приложением. Как я должен позаботиться об этом? Должен ли я переместить приложение, основанное на конфигурации, на пользовательский appender? Есть ли какая-либо гарантия того, что приложение не откажет мой бизнес-процесс в случае ошибки добавления события журнала?Как обрабатывать исключения log4j2 JDBCAppender?

Thks заранее

ответ

1

Предполагая, что вы используете JDBCAppender, я зависит от двух вещей:

  • Делитесь вы соединение с базой данных вашего приложения с помощью log4j? По умолчанию это не так. На самом деле вам придется очень стараться, чтобы это сделать. Таким образом, сбои при подключении к протоколу не влияют на транзакции в бизнес-соединении БД.
  • Если вы используете соединение JDBC, это зависит от параметра autoCommit этого соединения. Если autoCommit имеет значение true, ошибки регистрации не будут влиять на бизнес-транзакции даже при одном и том же соединении.
Смежные вопросы