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

相关推荐
gis开发之家4 天前
日志怎么打才专业?Spring Boot 4 日志体系与 Logback 配置(生产级实战)
java·spring boot·后端·logback
带刺的坐椅11 天前
Solon 的日志设计哲学:不只是用 SLF4J 做统一门面
java·logback·solon·log4j2
sun༒25 天前
Logback 日志框架总结:从入门到实战
单元测试·logback
.柒宇.1 个月前
ELK日志分析系统实战指南:Elasticsearch搭建与入门(8.18.8版本)
运维·elk·elasticsearch·logback·日志系统
hdsoft_huge1 个月前
SpringBoot系列17:日志体系Logback配置,日志分割、脱敏、异常堆栈收集规范(生产级落地)
java·spring boot·logback
倒流时光三十年1 个月前
Logback 系列(13):生产环境配置建议清单
logback
倒流时光三十年1 个月前
Logback 系列(12):高级篇 · MDC 链路追踪
logback
倒流时光三十年1 个月前
Logback 系列(3):三大核心组件 Logger / Appender / Encoder
java·开发语言·logback
倒流时光三十年1 个月前
Logback 系列(7):常用 Appender(控制台 / 文件 / 滚动文件)
java·前端·logback
倒流时光三十年1 个月前
Logback 系列(6):Pattern 布局语法速查
logback