log4j2采用AsyncLogger出現(xiàn)的錯誤及解決方案
log4j2采用AsyncLogger的錯誤
配置文件,配置日志打印控制
Appender采用默認同的(不額外加異步控制的Async)
Logger采用異步的AsyncLogger(root無所謂)
如果此時是這樣配置的,也就是想要使用AsyncLogger + (sync)Appender的方式,但是卻出錯了:
Unable to invoke factory method in class class org.apache.logging.log4j.core.async.AsyncLoggerConfig for element AsyncLogger. java.lang.reflect.InvocationTargetException
解決方法
pom文件中,或者說項目的依賴jar包中,只引入了log4j2的相關(guān)api包和core包。
補充一個 額外的log4j2本身代碼邏輯所依賴的 disruptor包。
問題解決?。?!
問題來源:log4j2的AsyncLogger本身的邏輯采用了緩沖區(qū)思想,使用的是disruptor框架來實現(xiàn)一個環(huán)形無鎖隊列。
讓人想不到的是,這個東西竟然需要自己引入依賴jar包?。?!
log4j的AsyncLogger的name屬性
可以是包路徑比如:org.apache
使用方式:
Logger logger=LoggerFactory.getLogger(getClass());
那么所有org.apache包下的日志都寫在這個asynclogger
也可以是自定義名字比如:myLogger
使用方式:
Logger logger=LoggerFactory.getLogger("myLogger");
那么該日志寫在這個asynclogger
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解
這篇文章主要介紹了java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解的相關(guān)資料,這里附有實例代碼,具有參考價值,需要的朋友可以參考下2017-01-01淺談MySQL中是如何實現(xiàn)事務(wù)提交和回滾的
本文主要介紹了MySQL中是如何實現(xiàn)事務(wù)提交和回滾的,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02利用線程實現(xiàn)動態(tài)顯示系統(tǒng)時間
編寫Applet小程序,通過在HTML文檔中接收參數(shù),顯示當前的系統(tǒng)時間,需要的朋友可以參考下2015-10-10java 學(xué)習筆記(入門篇)_java的基礎(chǔ)語法
從基礎(chǔ)語法開始,這個語法你也可以理解為英語或是漢語里面的語法,只不過大家各有各的特點和區(qū)別;那么在學(xué)習的過程中我們就要不斷的積累重要的類和方法,這樣寫程序就會方便快捷了,下面就開始學(xué)習java的基礎(chǔ)語法2013-01-01SpringMVC實現(xiàn)簡單跳轉(zhuǎn)方法(專題)
這篇文章主要介紹了SpringMVC實現(xiàn)簡單跳轉(zhuǎn)方法(專題),詳細的介紹了SpringMVC跳轉(zhuǎn)的幾種方法,非常具有實用價值,需要的朋友可以參考下2018-03-03