本文介绍 Logback 异步日志配置的原理及方法。
Logback 默认日志记录使用同步方式,一定程度上会造成性能延迟,尤其在写入文件、集中式日志处理系统(ELK)等场景中。
Logback 提供 ch.qos.logback.classic.AsyncAppender 异步日志记录类,AsyncAppender 的工作原理是将日志任务写入 BlockingQueue 中,委托其它 Appender 依次处理 BlockingQueue 中的日志任务。所以 AsyncAppender 自己并不负责写入日志,只是提供一种异步方式,写入日志还需其它具体的 Appender 执行,如 FileAppender、RollingFileAppender 等。
Logback 异步日志记录参考配置如下:
<!-- 异步日志记录 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>1024</queueSize>
<appender-ref ref="OTHER_APPENDER"/>
</appender>
说明:
-
discardingThreshold:丢弃阈值,默认情况下日志任务队列容量高于80%时会丢弃ERROR以下级别日志,如果希望全部保存而不丢弃任何日志则需要设置为0。 -
queueSize:日志任务队列长度,默认256,需要根据具体业务场景进行设置。 -
appender-ref:具体执行记录日志任务的Appender,如FileAppender、RollingFileAppender、LogstashTcpSocketAppender等。










