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的相關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
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
一步步講解Spring?Boot整合MyBatis與PostgreSQL實戰(zhàn)指南
這篇文章主要介紹了如何在SpringBoot環(huán)境中集成MyBatis和PostgreSQL,涵蓋了環(huán)境搭建、項目創(chuàng)建、數(shù)據(jù)源配置、實體類與Mapper接口定義、MapperXML文件編寫、業(yè)務層與控制層實現(xiàn)以及測試與驗證的全過程,需要的朋友可以參考下2025-02-02
spring MVC + bootstrap實現(xiàn)文件上傳示例(帶進度條)
本篇文章主要介紹了spring MVC + bootstrap實現(xiàn)文件上傳示例(帶進度條),非常具有使用價值,有需要的朋友可以了解一下。2017-03-03
jeefast和Mybatis實現(xiàn)三級聯(lián)動的示例代碼
這篇文章主要介紹了jeefast和Mybatis實現(xiàn)三級聯(lián)動的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10

