log4j2異步Logger(詳解)
1 異步Logger的意義
之前的日志框架基本都實(shí)現(xiàn)了AsyncAppender,被證明對(duì)性能的提升作用非常明顯。
在log4j2日志框架中,增加了對(duì)Logger的異步實(shí)現(xiàn)。那么這一步的解耦,意義何在呢?

如圖,按我目前的理解:異步Logger是讓業(yè)務(wù)邏輯把日志信息放入Disruptor隊(duì)列后可以直接返回(無(wú)需等待“掛載的各個(gè)Appender”都取走數(shù)據(jù))
優(yōu)點(diǎn):更高吞吐、調(diào)用log方法更低的延遲。
缺點(diǎn):異常處理麻煩、 可變?nèi)罩鞠?wèn)題、更大的CPU開(kāi)銷、需要等待“最慢的Appender”消費(fèi)完成。
異步Logger會(huì)使用Disruptor做高吞吐隊(duì)列,異步Appender會(huì)使用ArrayBlockingQueue做隊(duì)列。
異步Logger與異步Appender都可以設(shè)置“隊(duì)列滿了之后的策略”,我個(gè)人建議都設(shè)置為“按日志級(jí)別部分丟棄”。
2 啟用
1,全局啟用異步Logger方案一
JVM啟動(dòng)參數(shù)(boot.ini)加上“-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”
2,全局啟用異步Logger方案二
classpath中添加文件“l(fā)og4j2.component.properties”,文件增加以下內(nèi)容:
“Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”
3,手工指定部分Logger采用異步方式
log4j2.xml配置文件中使用AsyncRoot/AsyncLogger替代Root/Logger
(上述3種方式任選其一即可,不要同時(shí)采用)
以上這篇log4j2異步Logger(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringAop切入點(diǎn)execution表達(dá)式的深入講解
Spring AOP 可能會(huì)經(jīng)常使用 execution切入點(diǎn)指示符,下面這篇文章主要給大家介紹了關(guān)于SpringAop切入點(diǎn)execution表達(dá)式的相關(guān)資料,需要的朋友可以參考下2021-08-08
JAVA使用quartz添加定時(shí)任務(wù),并依賴注入對(duì)象操作
這篇文章主要介紹了JAVA使用quartz添加定時(shí)任務(wù),并依賴注入對(duì)象操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
JAVA實(shí)現(xiàn)Excel和PDF上下標(biāo)的操作代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)Excel和PDF上下標(biāo),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Java前端開(kāi)發(fā)之HttpServletRequest的使用
service方法中的request的類型是ServletRequest,而doGet/doPost方法的request的類型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加強(qiáng)大2023-01-01
SpringBoot中實(shí)現(xiàn)Redis?Stream隊(duì)列的代碼實(shí)例
本文介紹了如何在Spring?Boot中使用Redis?Stream隊(duì)列進(jìn)行消息的生產(chǎn)和消費(fèi),涉及到的主要內(nèi)容包括添加Redis依賴、配置RedisTemplate、創(chuàng)建生產(chǎn)者和消費(fèi)者監(jiān)聽(tīng)器等,需要的朋友可以參考下2024-09-09
使用jaxws建立webservice客戶端并實(shí)現(xiàn)soap消息的handler驗(yàn)證示例
這篇文章主要介紹了使用jaxws建立webservice客戶端并實(shí)現(xiàn)soap消息的handler驗(yàn)證示例,需要的朋友可以參考下2014-03-03

