【问题标题】:How to handle log4j2 JDBCAppender exceptions?如何处理 log4j2 JDBCAppender 异常?
【发布时间】:2014-02-14 21:24:40
【问题描述】:

我在我的项目中使用 Log4j 2 将子日志写入数据库表。这些事件是基于特定的 MDC 键/值对来识别的。 我担心的是这个 appender 可以从它的 append 方法中抛出的未经检查的 LoggingException。这些数据库日志是在异步事务进程中生成的,我不希望主进程受到附加程序引发的潜在异常的影响。 我应该如何照顾它?我应该将基于配置的附加程序移动到自定义附加程序吗?有没有保证appender不会在log event append错误的情况下回滚我的业务流程?

提前考虑

【问题讨论】:

    标签: java log4j2


    【解决方案1】:

    假设你使用的是 JDBCAppender,我取决于两件事:

    • 您是否与 log4j 共享应用程序的数据库连接?默认情况下,您不是。事实上,你必须非常努力地做到这一点。因此,日志记录连接上的故障不会影响业务数据库连接上的事务。
    • 如果您共享 JDBC 连接,则取决于该连接的 autoCommit 设置。如果 autoCommit 为 true,即使在同一连接上,日志记录错误也不会影响业务事务。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      相关资源
      最近更新 更多