2014-01-24 63 views
3

我在我的項目中使用Log4j 2將子日誌寫入數據庫表。這些事件是基於特定的MDC鍵/值對來標識的。 我的關注是關於這個appender可以從它的append方法拋出的未經檢查的LoggingException。這些數據庫日誌是在異步事務過程中生成的,我不希望主進程受到appender引發的潛在異常的影響。 我該如何照顧它?我應該將基於配置的appender移動到自定義appender上嗎?有沒有保證appender不會在日誌事件附加錯誤的情況下回滾我的業務流程?如何處理log4j2 JDBCAppender異常?

THKS提前

回答

1

假設你正在使用JDBCAppender,我取決於兩個因素:

  • 你分享與log4j的應用程序的數據庫連接?默認情況下,你不是。事實上,你將不得不努力去完成這一點。因此,日誌記錄連接上的故障不會影響業務數據庫連接上的事務處理。
  • 如果您正在共享JDBC連接,則它取決於該連接的autoCommit設置。如果autoCommit爲true,則即使在同一連接上,記錄錯誤也不會影響業務事務。