提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
目前主流的日志接口框架是SLF4J,这个基本没有什么争议了。日志实现框架主要是Logback、Log4j2这两种,那么如何选择呢。 众所周知Logback是Springboot默认采用的日志实现框架。而Log4j 2 是 Log4j 的升级版,同时和 Logback相比有较大改进,性能方面可谓直接碾压Logback,我们来看下具体数据。
一、同步性能Log4j2 vs Logback
1.吞吐量比较
如图这个是Log4j2官网的测评。单线程的时候Log4j2的吞吐量比Logback略好些。多线程以后随着线程数量的增加,Log4j2的吞吐量略有下降,而Logback的吞吐量降到差不多Log4j2的八分之一,多线程下Log4j2的吞吐量差不多是Logback的8-10倍了。
2.响应时间比较
响应时间方面,TP6个9,Log4j2也比Logback表现好很多。
二、异步性能Log4j2 vs Logback
1.吞吐量比较
首先看下Log4j2同步记录器、异步附加器和异步记录器的吞吐量比较,如图。在 64 个线程的测试中,异步记录器比同步记录器快 68 倍。
Log4j2异步吞吐量与其他日志记录包( log4j-1.2.17 和 logback-1.0.10)的比较如图,Log4j2异步吞吐量是Logback吞吐量的10倍以上。
2.响应时间比较
可以看到 Logback 1.1.7、Log4j 1.2.17 遇到的延迟峰值比 Log4j 2 大几个数量级。
总结
通过同步吞吐量、响应时间,异步吞吐量、响应时间等数据的比较,可以看出Log4j 2 在性能方面可谓直接碾压Logback,是我们应用中日志实现框架的不二之选。
参考:Log4j2官网