Consumo de eventos (registro de eventos de Windows)

Puede consumir eventos de canales o archivos de registro. Para consumir eventos, puede consumir todos los eventos o puede especificar una expresión XPath que identifique los eventos que desea consumir. Para determinar los elementos y atributos de un evento que puede usar en la expresión XPath, vea Esquema de eventos.

Registro de eventos de Windows admite un subconjunto de XPath 1.0. Para más información sobre las limitaciones, consulte Limitaciones de XPath 1.0.

En los ejemplos siguientes se muestran expresiones 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]]]

Puede usar las expresiones XPath directamente al llamar a las funciones EvtQuery o EvtSubscribe , o bien puede usar una consulta XML estructurada que contenga la expresión XPath. Para consultas sencillas que consultan eventos de un único origen, el uso de una expresión XPath es correcto. Si la expresión XPath es una expresión compuesta que contiene más de 20 expresiones o está consultando eventos de varios orígenes, debe usar una consulta XML estructurada. Para obtener más información sobre los elementos de una consulta XML estructurada, consulte Esquema de consulta.

Una consulta estructurada identifica el origen de los eventos y uno o varios selectores o supresores. Un selector contiene expresiones XPath que seleccionan eventos del origen y un supresor contiene una expresión XPath que impide que se seleccionen eventos. Puede seleccionar eventos de más de un origen. Si un selector y un supresor identifican el mismo evento, el evento no se incluye en el resultado.

A continuación se muestra una consulta XML estructurada que especifica un conjunto de selectores y supresores.

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

El conjunto de resultados de la consulta no contiene una instantánea de los eventos en el momento de la consulta. En su lugar, el conjunto de resultados incluye los eventos en el momento de la consulta y también contendrá todos los nuevos eventos que se generan que coinciden con los criterios de consulta mientras se enumeran los resultados.

Nota:

El orden de los eventos se conserva para los eventos escritos por el mismo subproceso. Sin embargo, es posible que los eventos escritos por subprocesos independientes en distintos procesadores de un equipo de varios procesadores aparezcan desordenados.

 

Para obtener más información sobre el consumo de eventos, consulte los temas siguientes:

Las herramientas de usuario final estándar para consumir eventos son:

Limitaciones de XPath 1.0

Registro de eventos de Windows admite un subconjunto de XPath 1.0. La restricción principal es que solo un selector de eventos puede seleccionar los elementos XML que representan eventos. Una consulta XPath que no selecciona un evento no es válida. Todas las rutas de acceso del selector válidas comienzan por * o "Event". Todas las rutas de acceso de ubicación funcionan en los nodos de evento y se componen de una serie de pasos. Cada paso es una estructura de tres partes: el eje, la prueba de nodo y el predicado. Para obtener más información sobre estas partes y sobre XPath 1.0, vea Lenguaje de ruta de acceso XML (XPath). El registro de eventos de Windows coloca las siguientes restricciones en la expresión:

  • Eje: solo se admiten los ejes Secundario (predeterminado) y Attribute (y su eje abreviado "@").
  • Pruebas de nodo: solo se admiten nombres de nodo y pruebas NCName. Se admite el carácter "*", que selecciona cualquier carácter.
  • Predicados: cualquier expresión XPath válida es aceptable si las rutas de acceso de ubicación cumplen las siguientes restricciones:
    • Se admiten los operadores estándar OR, AND, =, !=, <=, <>= , >y paréntesis.
    • No se admite la generación de un valor de cadena para un nombre de nodo.
    • No se admite la evaluación en orden inverso.
    • No se admiten conjuntos de nodos.
    • No se admite el ámbito del espacio de nombres.
    • No se admiten nodos de espacio de nombres, procesamiento y comentarios.
    • No se admite el tamaño del contexto.
    • No se admiten enlaces de variables.
    • La función position y su referencia de matriz abreviada se admiten (solo en nodos hoja).
    • Se admite la función Band. La función realiza un AND bit a bit para dos argumentos de número entero. Si el resultado de and bit a bit es distinto de cero, la función se evalúa como true; de lo contrario, la función se evalúa como false.
    • Se admite la función timediff. La función calcula la diferencia entre el segundo argumento y el primer argumento. Uno de los argumentos debe ser un número literal. Los argumentos deben usar la representación FILETIME. El resultado es el número de milisegundos entre las dos veces. El resultado es positivo si el segundo argumento representa un tiempo posterior; de lo contrario, es negativo. Cuando no se proporciona el segundo argumento, se usa la hora actual del sistema.