2012-11-15 50 views
1

我定義了兩個處理程序在standalone.xml文件具有相同名稱的類別,如下面是否有可能在jboss-7日誌記錄中擁有多個具有相同類別的處理程序?

<logger category="ab.cd" use-parent-handlers="false"> 
      <level name="DEBUG" /> 
      <handlers> 
       <handler name="abDebug" /> 
      </handlers> 
     </logger> 
<logger category="ab.cd" use-parent-handlers="true"> 
       <level name="WARN" /> 
       <handlers> 
        <handler name="abWarning" /> 
       </handlers> 
      </logger> 

但我得到異常,當我嘗試運行JBoss的7

14:28:08,090 ERROR [org.jboss.as.server] JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration 
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:141) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.server.ServerService.boot(ServerService.java:266) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:155) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] 
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09] 
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[143,4] 
Message: JBAS014664: An element of this type named 'ab.cd' has already been declared 
    at org.jboss.as.controller.parsing.ParseUtils.duplicateNamedElement(ParseUtils.java:235) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.logging.LoggingSubsystemParser.parseLoggerElement(LoggingSubsystemParser.java:229) 
    at org.jboss.as.logging.LoggingSubsystemParser.readElement(LoggingSubsystemParser.java:149) 
    at org.jboss.as.logging.LoggingSubsystemParser.readElement(LoggingSubsystemParser.java:113) 
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:894) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_1(StandaloneXml.java:330) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:127) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:100) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] 
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:133) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final] 
    ... 3 more 

所以,我想要知道是否有可能有兩個相同類別的記錄器?如果不是,那麼在這種情況下如何將數據發送給兩個不同的處理程序?

回答

2

您不能有兩個具有相同類別定義的記錄器。記錄器如何知道應該使用哪個級別?您最好使用一個沒有設置級別的記錄器,並使用處理程序設置要記錄的級別。

類似以下內容:

<file-handler name="abDebug" auto-flush="true"> 
    <level name="DEBUG"/> 
    <file relative-to="jboss.server.log.dir" path="abDebug.log"/> 
    <append value="true"/> 
</file-handler> 
<file-handler name="abWarning" auto-flush="true"> 
    <level name="WARN"/> 
    <file relative-to="jboss.server.log.dir" path="abWarning.log"/> 
    <append value="true"/> 
</file-handler> 

<logger category="ab.cd"> 
    <handlers> 
     <handler name="abDebug" /> 
     <handler name="abWarning" /> 
    </handlers> 
</logger> 
+0

太謝謝你了帕金斯......它的工作,而無需使用的使用,家長處理..我想用在使用中,家長處理兩種不同的值兩種類型的處理程序..我如何配置.. – web2dev

+0

你不能。只有一個記錄器可以存在於同一個類別中,這意味着您只能獲得一個配置。雖然真的不重要。如果您不希望其他處理程序中顯示調試消息,請將處理程序的級別更改爲INFO。 –

相關問題