log4j2采用AsyncLogger出現(xiàn)的錯誤及解決方案
log4j2采用AsyncLogger的錯誤
配置文件,配置日志打印控制
Appender采用默認(rèn)同的(不額外加異步控制的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文件中,或者說項(xiàng)目的依賴jar包中,只引入了log4j2的相關(guān)api包和core包。
補(bǔ)充一個 額外的log4j2本身代碼邏輯所依賴的 disruptor包。

問題解決?。?!
問題來源:log4j2的AsyncLogger本身的邏輯采用了緩沖區(qū)思想,使用的是disruptor框架來實(shí)現(xiàn)一個環(huán)形無鎖隊(duì)列。
讓人想不到的是,這個東西竟然需要自己引入依賴jar包?。?!
log4j的AsyncLogger的name屬性
可以是包路徑比如:org.apache
使用方式:
Logger logger=LoggerFactory.getLogger(getClass());
那么所有org.apache包下的日志都寫在這個asynclogger
也可以是自定義名字比如:myLogger
使用方式:
Logger logger=LoggerFactory.getLogger("myLogger");
那么該日志寫在這個asynclogger
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
一步步講解Spring?Boot整合MyBatis與PostgreSQL實(shí)戰(zhàn)指南
這篇文章主要介紹了如何在SpringBoot環(huán)境中集成MyBatis和PostgreSQL,涵蓋了環(huán)境搭建、項(xiàng)目創(chuàng)建、數(shù)據(jù)源配置、實(shí)體類與Mapper接口定義、MapperXML文件編寫、業(yè)務(wù)層與控制層實(shí)現(xiàn)以及測試與驗(yàn)證的全過程,需要的朋友可以參考下2025-02-02
java使用RabbitMQ實(shí)現(xiàn)延遲消息示例
本文介紹了在分布式系統(tǒng)中,使用RabbitMQ實(shí)現(xiàn)延遲消息處理,其中詳細(xì)闡述了RabbitMQ隊(duì)列和交換機(jī)的配置、消息的發(fā)送與接收以及死信隊(duì)列的處理,具有一定的參考價值,感興趣的可以了解一下2024-10-10
spring MVC + bootstrap實(shí)現(xiàn)文件上傳示例(帶進(jìn)度條)
本篇文章主要介紹了spring MVC + bootstrap實(shí)現(xiàn)文件上傳示例(帶進(jìn)度條),非常具有使用價值,有需要的朋友可以了解一下。2017-03-03
jeefast和Mybatis實(shí)現(xiàn)三級聯(lián)動的示例代碼
這篇文章主要介紹了jeefast和Mybatis實(shí)現(xiàn)三級聯(lián)動的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10

