Definindo níveis de gravidade

Os níveis são usados para agrupar eventos e normalmente indicam a gravidade ou a verbosidade de um evento. Para definir um nível, use o elemento de nível . O arquivo Winmeta.xml define os seguintes níveis de gravidade comumente usados:

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

Os consumidores usam níveis para consultar eventos que contêm um valor de nível específico. Uma sessão de rastreamento ETW também pode usar níveis para limitar os eventos gravados no arquivo de log de rastreamento de eventos; eventos com um valor de nível igual ou menor que o valor de nível especificado são gravados no arquivo de log. Por exemplo, se a sessão especificasse o valor de nível para win:Warning, o arquivo de log conteria aviso, erro e eventos críticos.

O exemplo a seguir mostra como definir um nível. Você deve especificar os atributos de nome e valor do nível. O valor do atributo de valor deve estar no intervalo de 16 a 255. Os atributos de símbolo e mensagem são opcionais.

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