logback异步appender日志源码详解

背景:

日常打印日志时,使用logback的异步写日志几乎是标准的配置方式,本文从源码上看看异步写日志的整个流程

异步Appender日志

一般日志的配置如下所示

appender("ASYNC-LOG", AsyncAppender) {

neverBlock = true

queueSize = 10000

}

这样配置达到的效果有以下两点:

1.新来的是warn/error级别的日志,并且此时日志总数已经达到最大容量上限queueSize大小时,不会阻塞业务线程,而是选择丢弃日志,这样可以防止打印尖峰式打印日志时业务线程阻塞,不过会导致日志丢失

2.新来的是info/debug/trace级别的日志,当此时的日志总数已经达到最大容量上限queueSize的80%时,直接丢掉日志,也就是说对于这些低级别的日志,当达到最大阈值上限的80%时已经开始丢弃了

对着源码,我们来看一下这两个结论对应的代码段是什么:

1.初始化队列和丢弃阈值

2.日志消息插入

相关推荐
m0_7482475517 小时前
springboot中配置logback-spring.xml
spring boot·spring·logback
m0_7482500317 小时前
springboot使用logback自定义日志
java·spring boot·logback
程序猿熊跃晖17 小时前
多环境日志管理:使用Logback与Logstash集成实现高效日志处理
spring boot·elk·logback
CodeMonkey陈4 天前
springboot2.0整合logback日志(保姆级详细教程)
spring boot·后端·logback
m0_748233884 天前
使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
xml·spring·logback
山海不说话4 天前
从零搭建微服务项目Base(第5章——SpringBoot项目LogBack日志配置+Feign使用)
spring boot·后端·spring·spring cloud·微服务·logback
wangbing112512 天前
开发指南098-logback-spring.xml说明
xml·spring·logback
归宿乐瑶13 天前
六.logback记录日志文件并按大小日期分割文件
java·spring boot·logback
小池先生13 天前
mybatisplus把sql日志打印到logback日志文件中
sql·mybatis·logback
Mr_sun.1 个月前
Logback日志文件详细配置
java·spring boot·logback