log4j2引入非同步loggers,顯著提公升了日誌吞吐量和降低了延時,如下圖所示:
基於disruptor,實現了執行緒間通訊的無鎖化;
無gc模式:通過物件復用,避免頻繁建立物件,減少gc次數;
新增disruptor包;
log4j-2.9 and higher require disruptor-3.3.4.jar or higher on the classpath. prior to log4j-2.9, disruptor-3.0.0.jar or higher was required.設定log4j2.contextselector系統引數;
-dlog4j2.contextselector=org.apache
.logging
.log4j.core
.async
.asyncloggercontextselector
配置檔案如下圖所示:
?xml version="1.0" encoding="utf-8"?>
status="warn">
name="randomaccessfile"
filename="async.log"
immediateflush="false"
%d %p %c [%t] %m %ex%npattern>
patternlayout>
randomaccessfile>
level="info"
includelocation="false">
ref="randomaccessfile"/>
root>
loggers>
configuration>
注意:此時使用正常的 和標籤,否則會增加不必要的消耗;
新增disruptor包;
詳情參考:
log4j2非同步Logger 詳解
1 非同步logger的意義 之前的日誌框架基本都實現qriio了asyncappender,被證明對效能的提公升作用非常明顯。在log4j2日誌框架中,增加了對logger的非同步實現。那麼程式設計客棧這一步的解耦,意義何在呢?如圖,按我目前的理解 非同步logger是讓業務邏輯把日誌資訊放入di...
log4j2配置mybatis日誌
前天我上傳了我的mybatis系列課程 的第六講,主要內容是如何使用log4j2 具體版本為v2.0 rc1 為mybatis 3.2.7配置日誌。實際上目前最新的版本是剛剛發布的v2.0 rc2,我也嘗試過在mybatis 3.2.7中使用它,但卻報出以下錯誤 接著,在他的提示下,通過查閱myba...
springboot日誌體系 log4j2
最近除錯 和執行 的時候,一些日誌列印的亂七八槽,根據日誌很難快速定位到問題,感覺自己是為了列印日誌而列印日誌,花了點時間把日誌的相關整理了一下,意在讓日誌發揮最大的作用。本文解決以下問題 為何使用log4j2 springboot下log4j2日誌的使用 控制台日誌顯示的級別和檔案儲存的日誌不同 ...