首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在log4j2中配置对多个插件的写入?

如何在log4j2中配置对多个插件的写入?
EN

Stack Overflow用户
提问于 2022-08-17 19:33:35
回答 2查看 71关注 0票数 1

在log4j2之前

代码语言:javascript
复制
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ELASTIC=com.my.ElasticSearchAppender
log4j.rootLogger=FILE,ELASTIC # Works

log4j2

代码语言:javascript
复制
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

我得到了以下错误。

代码语言:javascript
复制
Log4J Updater ERROR Unable to locate appender "rolling,elastic" for logger config "root"

我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-18 05:51:56

备注:您的Log4j 1.x配置是不正确的,因为根记录器的配置必须以一个级别开始,后面是零个或多个附录名,例如:

代码语言:javascript
复制
log4j.rootLogger=INFO, FILE, ELASTIC

自2.17.2版起(参见。( LOG4J2-3341)相同的速记符号可用Log4j2属性格式:

代码语言:javascript
复制
rootLogger=INFO, file, elastic

完整的表示法可以很容易地从简单的XML格式中转换出来:

代码语言:javascript
复制
<Root level="INFO">
    <AppenderRef ref="file"/>
    <AppenderRef ref="elastic"/>
</Root>

每个<AppenderRef>元素都会产生一个appenderRef.<unique identifier>属性:

代码语言:javascript
复制
rootLogger.level = INFO
rootLogger.appenderRef.<0>.ref = file
rootLogger.appenderRef.<1>.ref = elastic
票数 1
EN

Stack Overflow用户

发布于 2022-08-18 06:30:36

我解决了这个问题

代码语言:javascript
复制
rootLogger.appenderRefs=rolling,elastic
rootLogger.appenderRef.elastic.ref=elastic
rootLogger.appenderRef.rolling.ref=rolling
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73394020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档