1. 程式人生 > >logback log4j log4j2 效能實測

logback log4j log4j2 效能實測

日誌已經成為系統開發中不可或缺的一部分. 但是針對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

相關推薦

logback log4j log4j2 效能實測

日誌已經成為系統開發中不可或缺的一部分. 但是針對logback, log4j和log4j2. 究竟改如何選擇? 到底效能如何? 今天我們做一個實際的測評. 相信看完這篇文章, 對這三個日誌框架會有很清楚的一個瞭解. 實驗環境 OS: Mac OS X 10.12.1C

Log4j,Log4j2,logback等常用日誌框架比較

一、Log4j Log4j是Apache的一個開放原始碼專案,通過使用Log4j,我們可以控制日誌資訊輸送的目的地是控制檯、檔案、資料庫等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻地控制日誌的生成過程。  Log4j有7種不同的log級別,按照

Spring Boot(十)LogbackLog4j2集成與日誌發展史

charset 輸出 https 子項目 har enc pst hub sed 一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麽這些日誌框架之間有著怎樣的關系?誕生的原因又是解決什麽問題?下面一起來看。

Spring Boot學習之LogbackLog4j2整合與日誌發展史

一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麼這些日誌框架之間有著怎樣的關係?誕生的原因又是解決什麼問題?下面一起來看。 1.1 JUL Java有自己的日誌框架JUL(Java Util Logging)在java.

Spring Boot(十)LogbackLog4j2整合與日誌發展史

一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麼這些日誌框架之間有著怎樣的關係?誕生的原因又是解決什麼問題?下面一起來看。 1.1 JUL Java有自己的日誌框架JUL(Java Util

檔案儲存誰稱王?雲端儲存效能實測大比拼

如何在大資料時代,又好又快的儲存我們的資料,在這個每天都有海量資料產生的時代,成為了難題。自建儲存的擴張困難、丟失的可能性大的問題,讓雲端儲存成為主流。雲端儲存儲存的資料大多總量巨大,每次搬遷都可能會產生巨大的影響,與其後續不斷搬遷產生巨大影響,何不在一開始就選擇一款物美價廉的雲端儲存服務呢? 今天

日誌分析利器elk與logback(log4j)實戰

在近期的專案中,由於其專案中記錄了許多日誌,當系統由於某些BUG掛掉時,單純地通過命令來查詢錯誤日誌很不方便排除,且搜尋起來很非常不方便,很花費時間,對於一向不喜歡乾重復單調很費時間的我來說,如果沒有一種辦法來解決日誌問題是一件很痛苦的事情。那天偶然,公司的CTO說解決這種

log4j, log4j2 實用配置;log4j 2 非同步配置

目錄: log4j 還是 log4j 2 ? - log4j 相容jdk6, 最新版本是1.2.17(不再更新) - log4j2 不相容jdk7之前的版本, 最新版本是2.6.x (截止2016-06-15) 但是,

logback + log4jdbc-log4j2 輸出 jpa sql 引數實際value

log4jdbc-log4j2是基於log4jdbc開發,是log4jdbc的一個變體。 在result輸入格式上做了非常完美的優化。 官網: https://code.google.com/p/log4jdbc-log4j2/ log4jdbc-log4j2 is

log4j轉換到logback, log4j.properties直接轉換成logback.xml,logback提供了官方配置詳解和轉換工具

logback比log4j要快大約10倍,而且消耗更少的記憶體,那如果從log4j轉換成logback,如果重新寫logback.xml是一件很麻煩的事情,如何配置logback,請參照官方配置詳解:h

logback/log4j實現log檔案一開始自帶日期[log4j預設需要觸發才會帶日期後續]

背景:我們本來是通過記錄行為到log,然後第二天下載log來處理,通過log的時間後續來判斷是否需要下載。後來發現我們下載前到0點沒有log的更新,那麼前一天的log是不會加時間後續,導致不會下載處理,結果記錄漏了資料。所以想找自帶時間戳的方式。 1.Logback lo

Spring Boot 日誌配置 logbacklog4j2

支援日誌框架:Java Util Logging, Log4J2 and Logback,預設是使用logback配置方式:預設配置檔案配置和引用外部配置檔案配置一、預設配置檔案配置(不建議使用:不夠靈

spring boot 日誌配置-logbacklog4j2

支援日誌框架:Java Util Logging, Log4J2 and Logback,預設是使用logback 配置方式:預設配置檔案配置和引用外部配置檔案配置 一、 預設配置檔案配置(不建議使用:不夠靈活,對log4j2等不夠友好) # 日誌檔名,比如:roncoo

QT QOpenGLWidget 效能實測

QOpenGLWidget 效能實測,不斷載入影象並顯示,記錄繪圖部分耗時 重寫paintEvent事件,加入以下操作 QPainter painter(this); QRect target(0, 0, width(), height()); if (m_

ADO.net,Linq to SQL和Entity Framework效能實測分析

我們可以使用EDMGen2.exe來自己生成View.cs,然後把它加入到工程中編譯,這樣會大大縮減View Generation操作所佔的時間比。根據ADO.NET TEAM 的測試,自己編譯View大概會節省28%的時間。不過我在自己電腦上測試的結果沒有那麼理想,大概是8%左右。

痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介紹(2)- RT685EVKA效能實測(Dhrystone)

  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RTxxx系列MCU的效能。   在前面的文章 i.MXRTxxx微控制器概覽 裡,痞子衡給大家簡介過恩智浦半導體在2018年推出的全新跨界微控制器i.MX RTxxx系列,該系列第一款晶片i.MXRT600搭載一顆Cort

logbacklog4jlog4j2三種日誌框架效能檢測——為什麼用log4j2

注意:此部落格為轉載 https://blog.csdn.net/yjh1271845364/article/details/70888262 作為記錄 日誌已經成為系統開發中不可或缺的一部分. 但是針對logback, log4j和log4j2. 究竟改如何選擇? 到底效能

LogbackLog4J效能測試

分別從兩個方面測試: 1、日誌輸出的格式對效能的影響,即日誌中包含動態方法名和行號對效能的影響 2、日誌長度對效能的影響 LogBack測試 本測試在Spring Boot框架基礎上進行,日誌配置檔案logback-spring.xml內容如下: <?xml ver

Log4j2Log4jLogback自定義Appender實現

logback: <!--異常收集 --> <appender name="gwarn"class="com.duowan.gwarn.sdk.GwarnLogbackAppender">          <filterclass="ch.qos.logback.classi

JCL、SLF4J、Log4JLog4J2LogBack和JUL之間的關係,你搞清楚了嗎?

寫在前面 日誌元件是我們平時開發過程中必然會用到的元件。在系統中正確的列印日誌至少有下面的這些好處: 除錯:在程式的開發過程中,必然需要我們不斷的除錯以達到程式能正確執行的狀態 。記錄日誌可以讓開發人員清楚的瞭解程式的執行狀態定位問題; 資訊收集:在DT時代,誰掌握了資料誰就掌握了主動權。現在主流的日誌系統