Share via


Definieren von Schweregraden

Ebenen werden zum Gruppieren von Ereignissen verwendet und geben in der Regel den Schweregrad oder die Ausführlichkeit eines Ereignisses an. Verwenden Sie zum Definieren einer Ebene das level-Element . Die Winmeta.xml-Datei definiert die folgenden häufig verwendeten Schweregrade:

  • win:Critical
  • win:Error
  • win:Warning
  • win:Informational
  • win:Verbose

Consumer verwenden Ebenen, um Ereignisse abzufragen, die einen bestimmten Ebenenwert enthalten. Eine ETW-Ablaufverfolgungssitzung kann auch Ebenen verwenden, um die Ereignisse einzuschränken, die in die Ereignisablaufverfolgungsprotokolldatei geschrieben werden. Ereignisse mit einem Ebenenwert, der dem angegebenen Ebenenwert entspricht oder kleiner ist, werden in die Protokolldatei geschrieben. Wenn die Sitzung beispielsweise den Levelwert für win:Warning angegeben hat, enthält die Protokolldatei Warnungs-, Fehler- und kritische Ereignisse.

Das folgende Beispiel zeigt, wie eine Ebene definiert wird. Sie müssen den Namen und die Wertattribute der Ebene angeben. Der Wert des Value-Attributs muss im Bereich von 16 bis 255 liegen. Die Symbol- und Nachrichtenattribute sind optional.

<instrumentationManifest
    xmlns="http://schemas.microsoft.com/win/2004/08/events" 
    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    >

    <instrumentation>
        <events>
            <provider name="Microsoft-Windows-SampleProvider"
                guid="{1db28f2e-8f80-4027-8c5a-a11f7f10f62d}"
                symbol="PROVIDER_GUID"
                resourceFileName="<path to the exe or dll that contains the metadata resources>"
                messageFileName="<path to the exe or dll that contains the string resources>"
                message="$(string.Provider.Name)">

                . . .

                <levels>
                    <level name="NotValid"
                           value="16"
                           symbol="LEVEL_SAMPLEPROVIDER_NOTVALID"
                           message="$(string.Level.NotValid)"/>
                    <level name="Valid"
                           value="17"
                           symbol="LEVEL_SAMPLEPROVIDER_VALID"
                           message="$(string.Level.Valid)"/>
                </levels>

                . . .

            </provider>
        </events>
    </instrumentation>

    <localization>
        <resources culture="en-US">
            <stringTable>
                <string id="Provider.Name" value="Sample Provider"/>
                <string id="Level.Valid" value="Valid"/>
                <string id="Level.NotValid" value="Not Valid"/>
            </stringTable>
        </resources>
    </localization>

</instrumentationManifest>