Java开源日志框架大比拼_第1页
Java开源日志框架大比拼_第2页
Java开源日志框架大比拼_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java开源日志框架大比拼应用系统中,日志是不可缺少的重要组成部分,所有的应用的出错信息等都应该能在日志文 件中查找到,有的应用系统日志可能数量很小,有的庞大的应用系统的日志是相当庞大,同 时日志文件必须是方便用户定制和查找的,要具备很高的性能,否则会影响应用系统的性能。应用系统中,日志是不可缺少的重要组成部分,所有的应用的出错信息等都应该能在日志文 件中查找到,有的应用系统日志可能数量很小,有的庞大的应用系统的日志是相当庞大,同 时日志文件必须是方便用户定制和查找的,要具备很高的性能,否则会影响应用系统的性能。由于日志通常涉及到io读写磁盘(或者是阻塞或者是异步),这都要耗费时间。当在大型

2、系统中有大量数据的时候,日志所耗费的时间就会显现。在本文中,将深入探讨目前Java 开源世界中领先的五个日志框架,在各个方面进行比较,要指出的是,本文并不是探究哪个 日志框架是最优秀的,而只是列出各自的优缺点。我们选取的五个日志框架分别为:Log4JLog4J2LogbackSLF4J Simple Logging (SLF4J SL)Java Util Logging (JUL)我们想对比下这些日志框架对于基本的日志记录活动的性能如何,每一个日志操作包括时间 戳和其上下文的进程ID。我们进行如下四个方面的测评:记录字符串常量Logging the .toString() value of a

3、 POJO 对 POJO 使用.toString()方法Logging a throwable object 记录 throwable 对象 4 只测试.toString()方法 我们决定为每种场景进行五次的评测,通过衡量完成日纸记录的操作次数,以决定哪一个有 最佳的成绩。在每次测试中让日志引擎在一分钟内使用10个线程去执行,并且剔除最大的 2次偏差,将余下的三次进行平均。在每一个单独的日志记录操作中,我们让CPU在日志记录的时候都执行一些操作(如检查是 否一个随机数是否素数)。这些评测的日志引擎都使用各自的默认配置通过SLF4J来运行。 评测是在Amazon m1.large EC2实例上进

4、行的。在Log4j2的刚开始的测试中,我们设置7%C的布局参数(参考: HYPERLINK /log4j/2.x /log4j/2.x /manual/layouts.html),这增加了其开销,在 RemkoPopma的建议下,我们更新了设置为%c(日志的名称)以符合其他的配 置,这给Log4j2 一个性能相当大的提升,在下面两个图中,值得注意的是记录上下文的性能开销。使用C的设置:使用C的设置:完整的测试结果集参考这个链接: HYPERLINK /spreadsheet/ccc?key=0Alceaf46X4GPdHBoLTdYQ29nRDh6V1dRY0 /spreadsheet/ccc

5、?key=0Alceaf46X4GPdHBoLTdYQ29nRDh6V1dRY0 0zT1FwWWc&usp=sharing下面对基于4个场景的测试结果进行具体分析:一字符串常量在 这轮比拼中,需要日志引擎使用线程和时间戳上下文去记录字符串常量Log4j是冠军, 比JUL能多写270%的日志行,比logback多12.5%,比SLF4J SL多52%。有趣的是在我们 改变log4j2的配置前,它写的行数能是比改变后的1/4左右,在更改配置后,性能排在第 三位,只比logback记录的 行数少30%。toString() 在 这轮比拼中记录的是POJO(使用其.toString方法),同样使用的

6、是线程和时间戳。结果 中,对于Log4j2来说,和第一回合差不多,但相比SLF4J SL有25%的性能提升。Log4j和 Logback是并驾齐驱的,位居第三,其吞吐量是SLF4J SL的88%。Throwable在这轮比拼中,日志引擎记录异常的对象和相关的描述信息。其中Log4j2是位居首位,其 性能比SLF4J SL高3倍,SLF4J SL位于第五位。而Log4j和Logback也是只能排在此轮的冠军之后,记录的行数只大概有冠军的一半,而第 二位的反而是JUL,能记录冠军Log4j2的日志量的大概82%。toString ()方法比拼当 处理服务器日志的时候,每一个日志项的上下文(例如线程ID,类的相关上下文,时间 戳等等)都是和日志内容一样重要。在之前的测试中,使用的是在大多数日志文件中常见 的标志一一线程ID号和时间戳。接下来我们认为值得去分析单纯在日志中使用.toString() 方法的性能。这个时候,Log4j2是赢家(如果改变配置,能获得180%的性能提升),赢出Logback和JUL 大概25%。SL4FJ SL则落败。在每轮的五次测试中,SLF4J SL在启用appende

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论