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.日志消息插入

相关推荐
是老余3 天前
Logback 日志介绍及与Spring Boot 的整合 【保姆级教程】
spring boot·后端·logback
蓝染-惣右介5 天前
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
单元测试·log4j·logback
MinggeQingchun9 天前
Java - SpringBoot之logback设置日期分割并设置指定时间自动清除,Linux启动运行
logback
( •̀∀•́ )92013 天前
使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
xml·spring·logback
一路奔跑131418 天前
logback日志脱敏后异步写入文件
logback·异步·日志脱敏
white camel19 天前
Java从入门到架构师_日志框架系列
java·logback·log4j2·日志·slf4j
wyh10611519 天前
01 springboot-整合日志(logback-config.xml)
xml·spring boot·logback
小萌新上大分19 天前
logback日志导入使用
java·开发语言·logback·日志·javaee·log·logback在测试中使用
hgSuper20 天前
【Java】java | logback日志配置 | 按包配置级别
java·logback
M00SE21 天前
log4j 和 logback 冲突解决
java·log4j·logback