如何为log4j2定义全局布局?

时间:2020-09-06 13:08:01

标签: log4j2

我们可以定义一个附加器,并通过使用<select name="selector" @change="selection"> <option :key="option" v-for="option in options"> {{option}} </option> </select> 对其进行引用来为多个记录器设置它。

那么可能有一个全局AppenderRef并在我们想要的任何附加程序中引用它吗?

就像Layout中的AppenderRef一样,我们可以在Appender中使用LayoutRef吗?

类似这样的东西:

Layout

我为什么需要这个?

我在<?xml version="1.0" encoding="UTF-8"?> <Configuration> <Properties> <Property name="env">dev</Property> <Property name="app">MyApp</Property> <Property name="module">MyModule</Property> <Lots Of Other Properties/> </Properties> <Layouts> <JsonLayout name="MyJsonLayout" complete="false" compact="false"> <KeyValuePair key="myKey" value="myValue" /> <KeyValuePair key="app" value="${app}"/> <KeyValuePair key="module" value="${module}"/> <KeyValuePair key="env" value="${env}"/> <Lots Of Other reference to properties/> </JsonLayout> </Layouts> <Appenders> <Console name="consoleJson" target="SYSTEM_OUT"> <LayoutRef ref="MyJsonLayout"/> </Console> <Kafka name="kafkaJson" topic="myTopic"> <LayoutRef ref="MyJsonLayout"/> </Console> </Appenders> <Loggers> <Logger name="class1" level="debug"> <AppenderRef ref="kafkaJson"/> </Logger> <Logger name="class2" level="debug"> <AppenderRef ref="kafkaJson"/> </Logger> <Root level="error"> <AppenderRef ref="consoleJson"/> </Root> </Loggers> 配置文件的开头设置了某些属性,并且正在JsonLayout中使用这些属性,因为您可以看到它们分别名为log4j2.xmlapp,等。通过定义全局布局,我将只能编辑module部分。否则,我需要在所有附加程序中进行更改,因为它们将具有自己的布局,并且所有布局属性都将相同。必须将相同的布局写到不同的追加程序将是低效率的。

1 个答案:

答案 0 :(得分:1)

据我所知,从这里查看 XSD master branch of the Log4j-config.xsd

没有这样的东西。我想错,因为我自己需要它。

因此,如果可能的话,那么它不在架构中。

您是否向开发人员提出了问题?如果是,请发布链接,我也会点赞。

另一个相关问题在这里13904481

相关问题