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

相关推荐
lang201509284 小时前
Logback TCP 远程日志实战:构建高可用的集中式日志中心
网络协议·tcp/ip·logback
lang2015092810 小时前
深入理解 Logback 架构:从层级继承到性能优化的实战指南
架构·logback
lang2015092812 小时前
Logback MDC 实战:在分布式混沌中构建清晰的日志链路
分布式·logback
bug攻城狮14 小时前
Spring Boot项目启动时输出PID、CPU和内存信息的4种方法
java·spring boot·后端·logback
lang2015092818 小时前
Logback Encoder 深度解析:从文本格式化到结构化 JSON 的进化之路
json·logback
lang2015092818 小时前
Logback Appender 实战指南:从控制台到异步高性能归档
logback
gb42152871 个月前
springboot项目如何查看使用的是Logback还是Log4j2还是SLF4J?
spring boot·log4j·logback
gb42152871 个月前
springboot项目中使用的Logback如何重写Logback获取error信息,获取到error信息后如何发送错误邮件
spring boot·后端·logback
虫小宝1 个月前
淘宝返利软件的日志审计系统:Java Logback+ELK Stack实现操作日志的可追溯与可视化分析
java·elk·logback
零度@1 个月前
logback 速查上手
logback