1

以下のように、standalone.xmlファイルで同じ名前のカテゴリに2つのハンドラーを定義しました

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

しかし、jboss7を実行しようとすると例外が発生します

 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つのロガーを持つことが可能かどうか知りたいですか?そうでない場合、このタイプのシナリオで2つの異なるハンドラーにデータを送信するにはどうすればよいですか?

4

1 に答える 1

2

同じカテゴリのロガーを2つ定義することはできません。ロガーはどのレベルを使用することになっているのかをどうやって知るのでしょうか?レベルが設定されていない1つのロガーを使用し、ハンドラーを使用してログに記録するレベルを設定することをお勧めします。

次のようなもの:

<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>
于 2012-11-15T16:35:51.547 に答える