几种日志框架的性能比较

这场奥林匹克竞赛参加队员有:Log4J SLF4J simple Logback Java Util Logging 和 LOG4J2

日志记录几乎是每一个服务器端必备的应用程序一部分。应用程序通过它以可读的方式持续性输出活动状态。有些应用程序可能每天只记录几百兆,而另一些可能在几小时内记录千兆字节。由于日志记录通常涉及IO,也就是将数据写入到磁盘(无论是阻塞或异步) - 这是有性能代价的。特别在很短时间记录大量数据时,成本会迅速扩大。我们决定去深入了解一些当今领先的记录引擎的速度。

日志三个方面使用:
1, 监控 - 查看代码的吞吐量,规模,安全等方面的行为。
2.调试 - 获得导致代码访问失败(变量,堆栈跟踪...)的状态。 3.分析 - 充分利用实时数据获得关于应用程序的使用方式。

在最近github 100个java项目中,SLF4J 是领先的日志框架。

下面看看这些日志框架在标准日志活动中表现。
1. 记录一个字符串常量。
2.记录一个POJO的.toString值
3.记录throwable对象
4.记录字符串常量 无时间戳等上下文信息

在一分钟内每个日志引擎的任务使用10个线程执行。是在Amazon 云计算平台测试。

测试结果:

第一项测字符串常量:试Log4j领先,是log4j2的4倍。

第二项toString():SLF4J获得冠军。

第三项throwable:log4j2获得冠军。

第四项:log4j获得冠军,不过大家相差无几。

最终结论:没有一个全能大赢家。

本测试代码

[该贴被banq于2013-12-20 20:20修改过]
[该贴被banq于2013-12-20 21:05修改过]