0

我正在使用 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 的更改,或者除了不使用严格模式之外还有其他方法吗?

提前致谢。

4

1 回答 1

0

你能在 log4j-user 邮件列表上问这个吗?这可能是架构中的错误,但我怀疑架构可以进行更多改进,您的反馈会很有价值。

于 2013-10-10T22:41:52.220 回答