Partilhar via


Consumo de eventos (registo de eventos do Windows)

Você pode consumir eventos de canais ou de arquivos de log. Para consumir eventos, você pode consumir todos os eventos ou pode especificar uma expressão XPath que identifique os eventos que você deseja consumir. Para determinar os elementos e atributos de um evento que você pode usar em sua expressão XPath, consulte Esquema de eventos.

O Registo de Eventos do Windows suporta um subconjunto de XPath 1.0. Para obter detalhes sobre as limitações, consulte XPath 1.0 limitations.

Os exemplos a seguir mostram expressões XPath simples.

// The following query selects all events from the channel or log file
XPath Query: *

// The following query selects all the LowOnMemory events from the channel or log file
XPath Query: *[UserData/LowOnMemory]

// The following query selects all events with a severity level of 1 (Critical) from the channel or log file
XPath Query: *[System/Level=1]

// The following query shows a compound expression that selects all events from the channel or log file
// where the printer's name is MyPrinter and severity level is 1.
XPath Query: *[UserData/*/PrinterName="MyPrinter" and System/Level=1]

// The following query selects all events from the channel or log file where the severity level is
// less than or equal to 3 and the event occurred in the last 24 hour period.
XPath Query: *[System[(Level <= 3) and TimeCreated[timediff(@SystemTime) <= 86400000]]]

Você pode usar as expressões XPath diretamente ao chamar as funções EvtQuery ou EvtSubscribe, ou então pode usar uma consulta XML estruturada que contém a expressão XPath. Para consultas simples que consultam eventos de uma única fonte, usar uma expressão XPath é bom. Se a expressão XPath for uma expressão composta que contém mais de 20 expressões ou se você estiver consultando eventos de várias fontes, deverá usar uma consulta XML estruturada. Para obter detalhes sobre os elementos de uma consulta XML estruturada, consulte Query Schema.

Uma consulta estruturada identifica a origem dos eventos e um ou mais seletores ou supressores. Um seletor contém expressões XPath que selecionam eventos da origem e um supressor contém uma expressão XPath que impede que eventos sejam selecionados. Você pode selecionar eventos de mais de uma fonte. Se um seletor e um supressor identificarem o mesmo evento, o evento não será incluído no resultado.

A seguir mostra uma consulta XML estruturada que especifica um conjunto de seletores e supressores.

<QueryList>
  <Query Id="0">
    <Select Path="Application">
        *[System[(Level <= 3) and 
        TimeCreated[timediff(@SystemTime) <= 86400000]]]
    </Select>
    <Suppress Path="Application">
        *[System[(Level = 2)]]
    </Suppress>
    <Select Path="System">
        *[System[(Level=1  or Level=2 or Level=3) and 
        TimeCreated[timediff(@SystemTime) <= 86400000]]]
    </Select>
  </Query>
</QueryList>

O conjunto de resultados da consulta não contém um instantâneo dos eventos no momento da consulta. Em vez disso, o conjunto de resultados inclui os eventos no momento da consulta e também conterá todos os novos eventos gerados que correspondem aos critérios de consulta enquanto você enumera os resultados.

Observação

A ordem dos eventos é preservada para eventos que são escritos pelo mesmo thread. No entanto, é possível que eventos escritos por threads separados em processadores diferentes de um computador com vários processadores apareçam fora de ordem.

 

Para obter detalhes sobre o consumo de eventos, consulte os seguintes tópicos:

As ferramentas padrão do usuário final para consumir eventos são:

Limitações do XPath 1.0

O Registo de Eventos do Windows suporta um subconjunto de XPath 1.0. A principal restrição é que apenas elementos XML que representam eventos podem ser selecionados por um seletor de eventos. Uma consulta XPath que não seleciona um evento não é válida. Todos os caminhos de seleção válidos começam com * ou "Evento". Todos os caminhos de localização operam nos nós de evento e constituem-se de uma série de etapas. Cada etapa é uma estrutura de três partes: o eixo, o teste do nó e o predicado. Para obter mais informações sobre essas partes e sobre XPath 1.0, consulte XML Path Language (XPath). O Log de Eventos do Windows coloca as seguintes restrições na expressão:

  • Eixo: Somente os eixos Filho (padrão) e Atributo (e sua abreviatura "@") são suportados.
  • Testes de nó: Somente nomes de nó e testes NCName são suportados. O caractere "*", que seleciona qualquer caractere, é suportado.
  • Predicados: Qualquer expressão XPath válida é aceitável se os caminhos de localização estiverem em conformidade com as seguintes restrições:
    • Os operadores padrão OU, E, =, !=, <=, <, >=, >e parênteses são suportados.
    • Não há suporte para a geração de um valor de cadeia de caracteres para um nome de nó.
    • A avaliação em ordem inversa não é suportada.
    • Não há suporte para conjuntos de nós.
    • Não há suporte para escopo de namespace.
    • Não há suporte para nós de namespace, processamento e comentários.
    • O tamanho do contexto não é suportado.
    • Não há suporte para associações de variáveis.
    • A função position e a sua referência abreviada de matriz são suportadas (somente em nós folha).
    • A função Band é suportada. A função executa uma operação E bit a bit para dois números inteiros. Se o resultado da operação bit a bit E for diferente de zero, a função será avaliada como verdadeira; caso contrário, a função será avaliada como falsa.
    • A função timediff é suportada. A função calcula a diferença entre o segundo argumento e o primeiro argumento. Um dos argumentos deve ser um número literal. Os argumentos devem usar a representação FILETIME. O resultado é o número de milissegundos entre os dois tempos. O resultado é positivo se o segundo argumento representar um tempo posterior; caso contrário, é negativo. Quando o segundo argumento não é fornecido, a hora atual do sistema é usada.