Logback 对比 Log4j2

Logback 对比 Log4j2

测试分为本地测试端和服务器端,分别对gateway网关进行日志输出的压测

同步日志,不打印日志

logback(150并发,0间隔,循环50次)

log4j2(150并发,0间隔,循环50次)

同步日志,打印日志(大小4k,循环输出100次)

logback(150并发,0间隔,循环50次)

image-20190923105944045

log4j2(150并发,0间隔,循环50次)

异步打印日志(大小4k,循环输出100次,仅输出文件)

logback(150并发,0间隔,循环50次)

image-20190923112435315

log4j2(150并发,0间隔,循环50次)

测试环境

logback(50并发,0间隔,循环20次)

不打印日志

打印日志

log4j2(50并发,0间隔,循环20次)

不打印日志

打印日志

打印日志每条30k输出1000次(一次请求30M)

log4j2(50并发,0间隔,循环20次)

logback(50并发,0间隔,循环20次)

测试结果

对比响应时间

本地测试log4j2完爆logback(网关给的是2G堆内存)但是还是以测试环境为准:

  1. 在不输出日志和仅输出400k日志的情况下log4j2的99%,95%相比logback的耗时都有所减少;
  2. 同样开启异步日志的情况下输出30m日志的99%与95%差距在10倍以上.

对比jvm

对比30M日志输出时的JVM情况:

  1. logback进行了大量的YCG去清理临时的临时变量,而log4j2的变化相对稳定;
  2. logback的在异步处理的时候使用的是阻塞队列,日志输出量大导致写盘时间长队列堆积大使得处理日志时间过长;
  3. 对比线程变化logback线程相对变化大于log4j2.

总结

  1. 在线上环境关闭控制台输出会对性能有所提升;
  2. 相同情况下对比,log4j2性能更优;
  3. 在对日志输出场景比较多的情况下可以考虑将logback更换为log4j2;

附录

附录一 : logback vs log4j2

附录二 : Sync vs Async

附录三:log4j2特性

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值