日志已经成为系统开发中不可或缺的一部分. 但是针对logback, log4j和log4j2. 究竟改如何选择? 到底性能如何? 今天我们做一个实际的测评. 相信看完这篇文章, 对这三个日志框架会有很清楚的一个了解.

实验环境

  • OS: Mac OS X 10.12.1
  • CPU: 2.6 GHz Intel Core i5
  • 内存: 8 GB 1600 MHz DDR3

为了说明, 测试的准确性, 把测试过程展示出来

首先 把项目建起来 log4j-1.2.17, logback-1.1.7, log4j2-2.7, slf4j-api-1.7.21 保证用的jar包版本都一样.

然后配置各自的配置文件, 我们为了保证测试效果, 三种框架采取同样的输出格式, 在异步输出的时候, 都采取512的缓存.

log4j.xml

logback.xml

log4j2.xml

写两个测试方法

看结果

  • 可见在同步日志模式下, Logback的性能是最糟糕的.
  • 而log4j2的性能无论在同步日志模式还是异步日志模式下都是最佳的.

其根本原因在于log4j2使用了LMAX, 一个无锁的线程间通信库代替了, logback和log4j之前的队列. 并发性能大大提升, 下期文章将研究一下LMAX, 到底是什么

实用信息

关于log4j2的新特性

  1. 丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。
  2. log4j2使用了disruptor技术,在多线程环境下,性能高于logback等10倍以上。
  3. (garbage free)之前的版本会产生非常多的临时对象,会造成GC频繁,log4j2则在这方面上做了优化,减少产生临时对象。尽可能少的GC
  4. 利用插件系统,使得扩展新的appender,filter,layout等变得容易,log4j不可以扩展 插件????
  5. 因为插件系统的简单性,所以在配置的时候,可以不用具体指定所要处理的类型。class
  6. 可以自定义level
  7. Java 8 lambda support for lazy logging
  8. Support for Message objects
  9. 对filter的功能支持的更强大
  10. 系统日志(Syslog)协议supports both TCP and UDP
  11. 利用jdk1.5并发的特性,减少了死锁的发生。
  12. Socket LogEvent SerializedLayout
  13. 支持kafka queue

转载于:https://my.oschina.net/wxiwei/blog/1580289

logback log4j log4j2 性能实测相关推荐

  1. log4j与log4j2性能对比及log4j升级至log4j2方案

    1.前言 之前某个服务在压测环境中出现了问题,分析之后得知是log4jLogger对象争用厉害,很多线程阻塞在此. 以上问题证明log4j在高并发高QPS情况下,是存在性能问题的. 之后把log4j升 ...

  2. 还在用Logback?Log4j2的异步性能已经无敌了,还不快试试

    以下文章来源方志朋的博客,回复"666"获面试宝典 Logback  算是JAVA 里一个老牌的日志框架,从06年开始第一个版本,迭代至今也十几年了.不过logback最近一个稳定 ...

  3. 带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?

    1.JAVA混乱的日志体系 换乱的java日志体系 case: SLF4J-JCL LOG4J-CORE LOGBACK SLF4J-SIMPLE JCL-OVER-SLF4J LOGBACK-COR ...

  4. 常见日志框架介绍和对比(log4j,logback,log4j2)

    文章目录 1. 什么是slf4j? 2. log4j简介和配置 2.1 log4j介绍 2.2 log4j三大组件 2.3 log4j pom依赖引入 2.4 配置log4j 3. logback简介 ...

  5. java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

    java常用日志框架日志门面SLF4J .Jboss-logging .JCL.Log4j及实现 Logback.Log4j2.JUL,springboot集成 log4j.log4j2 .logba ...

  6. 日志框架,选择Logback Or Log4j2?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:Nginx 为什么快到根本停不下来?个人原创100W+访问量博客:点击前往,查看更多 来源:https://jue ...

  7. Spring Boot(十)Logback和Log4j2集成与日志发展史

    一.简介 Java知名的日志有很多,比如:JUL.Log4j.JCL.SLF4J.Logback.Log4j2,那么这些日志框架之间有着怎样的关系?诞生的原因又是解决什么问题?下面一起来看. 1.1 ...

  8. Logback 对比 Log4j2

    Logback 对比 Log4j2 测试分为本地测试端和服务器端,分别对gateway网关进行日志输出的压测 同步日志,不打印日志 logback(150并发,0间隔,循环50次) log4j2(15 ...

  9. springboot logback 、log4j2

    a. Spring Boot 默认的日志框架 logback b. 日志配置 b1. application.properties 配置 logging.file 和 logging.path log ...

最新文章

  1. OpenCV3图像处理——霍夫曼变换直线检测
  2. Json序列化提示缺少编译器要求的成员“ystem.Runtime.CompilerServices.ExtensionAttribute..ctor”...
  3. only 程序员的一个小总结
  4. uniapp微信小程序获取位置(高德SDK)
  5. 软件架构分类(转载)
  6. MySQL主从介绍及配置
  7. 心电图 python_能测血压,还有心电图,兼顾9大运动模式,dido手环还不错
  8. ubuntu字体丑_科学网—关于ubuntu系统的一点经验——字体崩溃 - 苗玉虎的博文
  9. 微信小程序编辑与显示列表信息
  10. 程序设计实践之车辆信息管理系统
  11. CICD实战——使用Jenkins实现自动化部署和环境隔离
  12. 深圳vpay钱包系统技术开发分享
  13. DW-32-rec_sys-Task04
  14. Dash-基础显示组件学习之Bar(柱形图、条形图、柱状图)Python-Dash-Bar-可视化数据分析
  15. 私有云服务器同步盘的定义及优势详解!
  16. 台式计算机开机风扇不转,电脑开机显卡风扇不转是怎么回事|电脑开机风扇不转的解决方法...
  17. C/C++源代码如何变成可执行程序的?
  18. python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
  19. 关于上传文件的报错问题
  20. go语言中的换行和分号

热门文章

  1. 使用IPV6 ACL对telnet登陆进行限定
  2. Linux的netstat命令使用
  3. Nginx正、反向代理以及负载均衡介绍
  4. 如何解决从VBA中复制出的代码是乱码这一问题
  5. java的反射机制--关于类中属性的反射。
  6. 【HDFS】hdfs与fsck结合使用
  7. 【火炉炼AI】深度学习008-Keras解决多分类问题
  8. Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)问题解决
  9. React—Native开发之 Could not connect to development server(Android)解决方法
  10. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法