簡體   English   中英

如何在 log4j2 中配置寫入多個 Appender?

[英]How to configure writing to multiple Appenders in log4j2?

在 log4j2 之前

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ELASTIC=com.my.ElasticSearchAppender
log4j.rootLogger=FILE,ELASTIC # Works

日志4j2

appender.elastic.type=Elasticsearch
appender.elastic.name=elastic
appender.rolling.type=RollingFile
appender.rolling.name=rolling
rootLogger.appenderRef.root.ref=rolling,elastic # does not work
rootLogger.appenderRef.root.ref=rolling # works
rootLogger.appenderRef.root.ref=elastic # works

我收到以下錯誤。

Log4J Updater ERROR Unable to locate appender "rolling,elastic" for logger config "root"

難道我做錯了什么?

備注:您的 Log4j 1.x 配置不正確,因為根記錄器的配置必須以一個級別開頭,后跟零個或多個附加程序名稱,例如:

log4j.rootLogger=INFO, FILE, ELASTIC

自 2.17.2 版(參見LOG4J2-3341 )以來,Log4j2 屬性格式中提供了相同的速記符號:

rootLogger=INFO, file, elastic

完整的符號可以很容易地從更簡單的 XML 格式轉換:

<Root level="INFO">
    <AppenderRef ref="file"/>
    <AppenderRef ref="elastic"/>
</Root>

每個<AppenderRef>元素都會產生一個appenderRef.<unique identifier>屬性:

rootLogger.level = INFO
rootLogger.appenderRef.<0>.ref = file
rootLogger.appenderRef.<1>.ref = elastic

我解決了這個問題

rootLogger.appenderRefs=rolling,elastic
rootLogger.appenderRef.elastic.ref=elastic
rootLogger.appenderRef.rolling.ref=rolling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM