我们可以定义一个附加器,并通过使用<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.xml
,app
,等。通过定义全局布局,我将只能编辑module
部分。否则,我需要在所有附加程序中进行更改,因为它们将具有自己的布局,并且所有布局属性都将相同。必须将相同的布局写到不同的追加程序将是低效率的。
答案 0 :(得分:1)
据我所知,从这里查看 XSD master branch of the Log4j-config.xsd
没有这样的东西。我想错,因为我自己需要它。
因此,如果可能的话,那么它不在架构中。
您是否向开发人员提出了问题?如果是,请发布链接,我也会点赞。
另一个相关问题在这里13904481