我正在使用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,还是除了不使用严格模式之外还有其他方法吗?
提前致谢。
答案 0 :(得分:0)
你能在log4j用户邮件列表上问这个吗?它可能是架构中的一个错误,但我怀疑架构可以做更多改进,您的反馈将是有价值的。