logback 异步日志配置

本文介绍如何利用 Logback 的 AsyncAppender 实现异步日志记录,提高应用程序性能。通过配置 queueSize 和 discardingThreshold 参数,可以有效管理日志队列,避免因日志记录造成的线程阻塞。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。

在多应用的时候,这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。

logback AsyncAppender    目前在logback 1.0.11及以上版本存在

 

集成到项目

异步日志记录是在原来logback上的扩展,并不是替代方式,所以只需要在原来的配置文件上添加一下配置

这样你的工程就会使用异步的方式记录日志

 

异步写日志原理:

 

ch.qos.logback.classic.AsyncAppender源码

可以配置的项为queueSize,discardingThreshold。


queueSize 默认值256,不过该值首次建议设置大一些,后续根据自己业务的特点去调优。 

 
discardingThreshold:默认情况下,当blockingQueue的容量高于阈值时(80%),会丢弃ERROR一下级别的日志,如果不希望丢弃日志(既每次都是全量保存),那可以设置为0。 如正常日志可以丢弃,那可以极大的提升性能,并保存关键的ERROR日志。


依赖

异步记录并不自己处理写日志,而只是提供了一种异步的方式,最后记录日志还需要到具体的appender上。

以上就是异步日志的工作方式,他内部需要一个具体的appender,所以在配置文件中,需要指出具体的依赖

这样,就能异步的记录到之前的appender上了。

 

性能

由于我本机配置有限,只能给出一个大概的值,供大家参考

由于需要模拟线上服务处理,因此需要每隔一段时间就暂停一次来模拟服务消耗

测试结果:

同步:6000

异步:5000

实际线上的服务处理时间导致的暂停时间会远远大于模拟时间,因此异步的优势应该更大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值