我想了解有关AsyncAppender的更多详细信息
lyk
如果附加的appender不起作用,我们可以控制重试吗?
如果附加的appender遇到错误
,它如何处理错误N如何从异步appender中删除附加的appender ....
答案 0 :(得分:0)
如您所知,AsyncAppender只是其他appender的包装器。当您创建AsyncAppender时,您已将“真正的”appender附加到它。
AsyncAppender将缓冲日志消息,直到达到配置的限制,并将这些日志消息一次性发布到附加的appender。
从AsyncAppender的代码看,当缓冲区已满时,它只是为每个连接的appender调用doAppend方法(简单地循环遍历所有appender)。由附加的appender来处理错误条件和重试。
我建议通过扩展SkeletonAppender并在您覆盖的方法中自行处理所有内容来实现自定义appender。
要回答您的上一个问题,AsyncAppender有一个removeAppender方法:
public void removeAppender(final Appender appender) {