Udostępnij przez


Definiowanie poziomów ważności

Poziomy są używane do grupowania zdarzeń i zazwyczaj wskazują ważność lub szczegółowość zdarzenia. Aby zdefiniować poziom, użyj elementu na poziomie. Plik Winmeta.xml definiuje następujące często używane poziomy rygorystyczności.

  • win:Krytyczny
  • win:Błąd
  • win:Ostrzeżenie
  • win:Informational
  • win:Verbose

Użytkownicy używają poziomów do wykonywania zapytań dotyczących zdarzeń zawierających określoną wartość poziomu. Sesja śledzenia ETW może również używać poziomów, aby ograniczyć zdarzenia zapisywane w pliku dziennika śledzenia zdarzeń; zdarzenia o wartości poziomu równej lub mniejszej niż określona wartość poziomu są zapisywane w pliku dziennika. Jeśli na przykład sesja określiła wartość poziomu dla win:Warning, plik dziennika będzie zawierać ostrzeżenia, błąd i zdarzenia krytyczne.

W poniższym przykładzie pokazano, jak zdefiniować poziom. Należy określić atrybuty nazwy poziomu i wartości . Wartość atrybutu musi należeć do zakresu od 16 do 255. Atrybuty symbolu oraz komunikatu są opcjonalne.

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