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.xml配置详解与实战指南
xml·logback
清风92008 小时前
Logback——日志技术(基础)
java·前端·logback
代码的余温16 小时前
MyBatis集成Logback日志全攻略
java·tomcat·mybatis·logback
秋千码途3 天前
小架构step系列08:logback.xml的配置
xml·java·logback
枣伊吕波6 天前
第十五节:第六部分:日志技术:logback的核心配置文件详解、日志级别
logback
再见晴天*_*7 天前
logback 日志不打印
java·服务器·logback
hi星尘18 天前
Spring Boot + Logback MDC 深度解析:实现全链路日志追踪
spring boot·后端·logback
还是鼠鼠18 天前
日志技术-Logback入门程序
java·后端·spring·springboot·logback
棠棠的cafe18 天前
Logback示例解析
java·后端·logback
蚰蜒螟19 天前
Spring与SLF4J/Logback日志框架深度解析:从源码看日志系统设计
java·spring·logback