在log4j中使用带有JMS appender的异步appender

时间:2011-08-18 00:25:53

标签: multithreading asynchronous log4j jms

我想了解有关AsyncAppender的更多详细信息

lyk

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

如果附加的appender遇到错误

,它如何处理错误

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

1 个答案:

答案 0 :(得分:0)

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

AsyncAppender将缓冲日志消息,直到达到配置的限制,并将这些日志消息一次性发布到附加的appender。

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

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

要回答您的上一个问题,AsyncAppender有一个removeAppender方法:

  public void removeAppender(final Appender appender) {