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的新特性
- 丟資料這種情況少,可以用來做審計功能。而且自身內部報的exception會被發現,但是logback和log4j不會。
- log4j2使用了disruptor技術,在多執行緒環境下,效能高於logback等10倍以上。
- (garbage free)之前的版本會產生非常多的臨時物件,會造成GC頻繁,log4j2則在這方面上做了優化,減少產生臨時物件。儘可能少的GC
- 利用外掛系統,使得擴充套件新的appender,filter,layout等變得容易,log4j不可以擴充套件 外掛????
- 因為外掛系統的簡單性,所以在配置的時候,可以不用具體指定所要處理的型別。class
- 可以自定義level
- Java 8 lambda support for lazy logging
- Support for Message objects
- 對filter的功能支援的更強大
- 系統日誌(Syslog)協議supports both TCP and UDP
- 利用jdk1.5併發的特性,減少了死鎖的發生。
- Socket LogEvent SerializedLayout
- 支援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(十)Logback和Log4j2集成與日誌發展史
charset 輸出 https 子項目 har enc pst hub sed 一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麽這些日誌框架之間有著怎樣的關系?誕生的原因又是解決什麽問題?下面一起來看。
Spring Boot學習之Logback和Log4j2整合與日誌發展史
一、簡介 Java知名的日誌有很多,比如:JUL、Log4j、JCL、SLF4J、Logback、Log4j2,那麼這些日誌框架之間有著怎樣的關係?誕生的原因又是解決什麼問題?下面一起來看。 1.1 JUL Java有自己的日誌框架JUL(Java Util Logging)在java.
Spring Boot(十)Logback和Log4j2整合與日誌發展史
一、簡介 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 日誌配置 logback和log4j2
支援日誌框架:Java Util Logging, Log4J2 and Logback,預設是使用logback配置方式:預設配置檔案配置和引用外部配置檔案配置一、預設配置檔案配置(不建議使用:不夠靈
spring boot 日誌配置-logback和log4j2
支援日誌框架: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
logback、log4j、log4j2三種日誌框架效能檢測——為什麼用log4j2。
注意:此部落格為轉載 https://blog.csdn.net/yjh1271845364/article/details/70888262 作為記錄 日誌已經成為系統開發中不可或缺的一部分. 但是針對logback, log4j和log4j2. 究竟改如何選擇? 到底效能
Logback及Log4J效能測試
分別從兩個方面測試: 1、日誌輸出的格式對效能的影響,即日誌中包含動態方法名和行號對效能的影響 2、日誌長度對效能的影響 LogBack測試 本測試在Spring Boot框架基礎上進行,日誌配置檔案logback-spring.xml內容如下: <?xml ver
Log4j2、Log4j、Logback自定義Appender實現
logback: <!--異常收集 --> <appender name="gwarn"class="com.duowan.gwarn.sdk.GwarnLogbackAppender"> <filterclass="ch.qos.logback.classi
JCL、SLF4J、Log4J、Log4J2、LogBack和JUL之間的關係,你搞清楚了嗎?
寫在前面 日誌元件是我們平時開發過程中必然會用到的元件。在系統中正確的列印日誌至少有下面的這些好處: 除錯:在程式的開發過程中,必然需要我們不斷的除錯以達到程式能正確執行的狀態 。記錄日誌可以讓開發人員清楚的瞭解程式的執行狀態定位問題; 資訊收集:在DT時代,誰掌握了資料誰就掌握了主動權。現在主流的日誌系統