具有严格xml配置的Log4j2 Appender属性

时间:2013-10-10 12:56:32

标签: log4j2

我正在使用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并在那里允许该属性,但这也有点不对,因为并非所有的appender都有target属性。

到目前为止,搜索网络对我没有帮助,我问你: 在严格的XML模式下配置Log4j2有什么我缺少的吗?

我是否必须“修补”XMLConfiguration和模式文件并将更改提交到log4j,还是除了不使用严格模式之外还有其他方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你能在log4j用户邮件列表上问这个吗?它可能是架构中的一个错误,但我怀疑架构可以做更多改进,您的反馈将是有价值的。