2013-10-10 50 views
0

我正在使用log4j2-beta9,並且想要在嚴格模式下使用log4j2.xml進行配置。 我的問題是:如何指定不在提供的模式文件中的屬性? 一個例子:Log4j2使用嚴格xml配置的Appender屬性

<?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> 

請注意,我想設置的附加器有目標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

你可以在log4j-user郵件列表上問這個問題嗎?這可能是模式中​​的一個錯誤,但我懷疑模式可以做更多的改進,並且您的反饋將很有價值。

+0

已經完成了...請參閱http://mail-archives.apache.org/mod_mbox/logging-log4j-user/201310.mbox/%[email protected]%3E – user2523784