Eventos de consumo (log de eventos Windows)

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

Windows Log de Eventos dá suporte a um subconjunto do XPath 1.0. Para obter detalhes sobre as limitações, consulte as limitações do XPath 1.0.

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 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 contenha 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 Esquema de Consulta.

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

O seguinte 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 que são gerados que correspondem aos critérios de consulta enquanto você está enumerando os resultados.

Observação

A ordem dos eventos é preservada para eventos escritos pelo mesmo thread. No entanto, é possível que eventos gravados por threads separados em diferentes processadores de um computador processador múltiplo apareçam fora de ordem.

 

Para obter detalhes sobre como consumir eventos, consulte os seguintes tópicos:

As ferramentas padrão do usuário final para o evento de consumo são:

Limitações do XPath 1.0

Windows Log de Eventos dá suporte a um subconjunto do 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 seletor válidos começam com * ou "Evento". Todos os caminhos de localização operam nos nós de evento e são compostos por uma série de etapas. Cada etapa é uma estrutura de três partes: eixo, teste de nó e predicado. Para obter mais informações sobre essas partes e sobre o XPath 1.0, consulte XPath (Linguagem de Caminho XML). Windows Log de Eventos coloca as seguintes restrições na expressão:

  • Eixo: há suporte apenas para o eixo Filho (padrão) e Atributo (e sua abreviação "@").
  • Testes de nó: há suporte apenas para nomes de nó e testes NCName. O caractere "*", que seleciona qualquer caractere, tem suporte.
  • Predicados: qualquer expressão XPath válida será aceitável se os caminhos de localização estiverem em conformidade com as seguintes restrições:
    • Os operadores padrão OR, AND, =, !=, <=, = , <>=, >e parênteses têm suporte.
    • Não há suporte para gerar um valor de cadeia de caracteres para um nome de nó.
    • Não há suporte para avaliação em ordem inversa.
    • Não há suporte para conjuntos de nós.
    • Não há suporte para o escopo do namespace.
    • Não há suporte para namespace, processamento e nós de comentário.
    • Não há suporte para o tamanho do contexto.
    • Não há suporte para associações de variáveis.
    • A função de posição e sua referência de matriz abreviada têm suporte (somente em nós folha).
    • Há suporte para a função Band. A função executa um AND bit a bit para dois argumentos de número inteiro. Se o resultado do AND bit a bit não for zero, a função será avaliada como true; caso contrário, a função é avaliada como false.
    • Há suporte para a função timediff. 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 as duas vezes. O resultado será positivo se o segundo argumento representar uma hora posterior; caso contrário, é negativo. Quando o segundo argumento não é fornecido, a hora atual do sistema é usada.