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

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ19 小时前
日志打印配置:logback-spring.xml配置;info和error完全区分了,并且按时间拆分了
xml·spring·logback
啥都不懂的小小白6 天前
Java日志篇3:Logback 配置全解析与生产环境最佳实践
java·开发语言·logback
diudiu96286 天前
Logback使用指南
java·开发语言·spring boot·后端·spring·logback
netyeaxi7 天前
SpringBoot:SpringBoot2.7.x如何将logback升级到1.3.x以上版本
java·spring boot·logback
Andy工程师9 天前
logback-spring.xml优先级更高
xml·spring·logback
qq 87622396510 天前
Labview 与欧姆龙 PLC 的 Ethernetip TCP 网口通讯:CIP 通讯的魅力
logback
聊天QQ:2769988511 天前
基于LCL滤波器的单相光伏逆变器控制设计的MATLAB/Simulink仿真
logback
z***D64814 天前
使用 Logback 的最佳实践:`logback.xml` 与 `logback-spring.xml` 的区别与用法
xml·spring·logback
DJ斯特拉15 天前
日志技术Logback
java·前端·logback
槁***耿16 天前
后端在文件存储中的架构设计
tomcat·logback·turbopack