【问题标题】:Use Asynchronous appender with JMS appender in log4j在 log4j 中使用异步 appender 和 JMS appender
【发布时间】:2011-08-18 00:25:53
【问题描述】:

我想了解更多关于 AsyncAppender 的细节

莱克

如果附加的 appender 不起作用,我们可以控制重试吗?

如果附加的appender遇到错误,它如何处理错误

N 如何从异步 appender 中删除附加的 appender....

【问题讨论】:

    标签: multithreading asynchronous log4j jms


    【解决方案1】:

    如您所知,AsyncAppender 只是其他附加程序的包装器。创建 AsyncAppender 时,您已将“真实”附加程序附加到它。

    AsyncAppender 将缓冲您的日志消息,直到达到您配置的限制,然后将这些日志消息一次性发布到附加的附加程序。

    从 AsyncAppender 的代码来看,看起来当缓冲区已满时,它只是为每个附加的 appender 调用 doAppend 方法(简单的 for 循环遍历所有 appender)。由附加的附加程序来处理错误情况和重试。

    我建议通过扩展 SkeletonAppender 并在您覆盖的方法中自己处理所有内容来实现自定义附加程序。

    为了回答你的最后一个问题,AsyncAppender 有一个 removeAppender 方法:

      public void removeAppender(final Appender appender) {
    

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 2019-10-25
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多