我正在使用 log4j2-beta9 并希望在严格模式下使用 log4j2.xml 对其进行配置。我的问题是:如何指定不在随附架构文件中的属性?一个例子:
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration
status="DEBUG"
strict="true"
monitorInterval="5"
name="TestingAttributes"
verbose="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Log4j-config.xsd">
<Properties>
</Properties>
<Appenders>
<Appender
type="Console"
name="SYSERR"
target="SYSTEM_ERR"> <!-- cvc-complex-type.3.2.2: Attribute 'target' is not allowed to appear in element 'Appender'. -->
<Layout Type="PatternLayout">
<Pattern>%date{dd.MM.yyyy HH:mm:ss,SSS} %5p %logger %m%n</Pattern>
</Layout>
<Filters>
<Filter
type="MarkerFilter"
marker="FLOW"
onMatch="DENY"
onMismatch="NEUTRAL" />
<Filter
type="MarkerFilter"
marker="EXCEPTION"
onMatch="DENY"
onMismatch="NEUTRAL" />
</Filters>
</Appender>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="SYSERR" />
</Root>
</Loggers>
</Configuration>
请注意,我想将 appender 设置为具有目标SYSTEM_ERR
,但在严格模式下不允许该属性。
target="SYSTEM_ERR"> <!-- cvc-complex-type.3.2.2: Attribute 'target' is not allowed to appear in element 'Appender'. -->
我总是可以在那里编辑Log4j-config.xsd
并允许该属性,但这也是错误的,因为并非所有附加程序都有一个target
属性。
由于到目前为止搜索网络对我没有帮助,我在问你:在严格的 XML 模式下配置 Log4j2 时我有什么遗漏吗?
我是否必须“修补” XMLConfiguration 和模式文件并提交对 log4j 的更改,或者除了不使用严格模式之外还有其他方法吗?
提前致谢。