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

相关推荐
熙客11 小时前
后端日志框架
java·开发语言·log4j·logback
Chief_fly12 小时前
Logback 配置精细化包日志控制
java·logback
Fency咖啡1 个月前
Spring Boot 内置日志框架 Logback - 以及 lombok 介绍
spring boot·后端·logback
嬉牛2 个月前
项目日志输出配置总结(多数据源MyBatis+Logback)
mybatis·logback
xrkhy2 个月前
SpringBoot之日志处理(logback和AOP记录操作日志)
java·spring boot·logback
搬山境KL攻城狮2 个月前
MacBook logback日志输出到绝对路径
java·intellij-idea·logback
中国胖子风清扬2 个月前
Rust 日志库完全指南:从入门到精通
spring boot·后端·rust·学习方法·logback
master-dragon2 个月前
java log相关:Log4J、Log4J2、LogBack,SLF4J
java·log4j·logback
刀鋒偏冷2 个月前
SLF4J和LogBack
logback