다음을 통해 공유


이벤트 사용(Windows 이벤트 로그)

채널 또는 로그 파일에서 이벤트를 사용할 수 있습니다. 이벤트를 사용하려면 모든 이벤트를 사용하거나 사용하려는 이벤트를 식별하는 XPath 식을 지정할 수 있습니다. XPath 식에서 사용할 수 있는 이벤트의 요소와 특성을 확인하려면 이벤트 스키마를 참조하세요.

Windows 이벤트 로그는 XPath 1.0의 하위 집합을 지원합니다. 제한 사항에 대한 자세한 내용은 XPath 1.0 제한 사항을 참조하세요.

다음 예제에서는 간단한 XPath 식을 보여 줍니다.

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

EvtQuery 또는 EvtSubscribe 함수를 호출할 때 XPath 식을 직접 사용하거나 XPath 식을 포함하는 구조적 XML 쿼리를 사용할 수 있습니다. 단일 원본에서 이벤트를 쿼리하는 간단한 쿼리의 경우 XPath 식을 사용하는 것이 좋습니다. XPath 식이 20개 이상의 식을 포함하는 복합 식이거나 여러 원본의 이벤트를 쿼리하는 경우 구조적 XML 쿼리를 사용해야 합니다. 구조적 XML 쿼리의 요소에 대한 자세한 내용은 쿼리 스키마를 참조하세요.

구조화된 쿼리는 이벤트의 원본과 하나 이상의 선택기 또는 억제기를 식별합니다. 선택기는 원본에서 이벤트를 선택하는 XPath 식을 포함하고, 억제기는 이벤트를 선택하지 못하도록 하는 XPath 식을 포함합니다. 둘 이상의 원본에서 이벤트를 선택할 수 있습니다. 선택기와 억제기가 동일한 이벤트를 식별하는 경우 이벤트는 결과에 포함되지 않습니다.

다음은 선택기 및 억제기 집합을 지정하는 구조적 XML 쿼리를 보여줍니다.

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

쿼리의 결과 집합에는 쿼리 시 이벤트의 스냅샷 포함되어 있지 않습니다. 대신 결과 집합에는 쿼리 당시의 이벤트가 포함되며 결과를 열거하는 동안 쿼리 조건과 일치하는 모든 새 이벤트도 포함됩니다.

참고

이벤트의 순서는 동일한 스레드에 의해 작성된 이벤트에 대해 유지됩니다. 그러나 여러 프로세서 컴퓨터의 다른 프로세서에서 별도의 스레드로 작성된 이벤트가 순서대로 나타날 수 있습니다.

 

이벤트 사용에 대한 자세한 내용은 다음 topics 참조하세요.

이벤트를 소비하기 위한 표준 최종 사용자 도구는 다음과 같습니다.

XPath 1.0 제한 사항

Windows 이벤트 로그는 XPath 1.0의 하위 집합을 지원합니다. 주요 제한 사항은 이벤트를 나타내는 XML 요소만 이벤트 선택기에서 선택할 수 있다는 것입니다. 이벤트를 선택하지 않는 XPath 쿼리가 잘못되었습니다. 모든 유효한 선택기 경로는 * 또는 "이벤트"로 시작합니다. 모든 위치 경로는 이벤트 노드에서 작동하며 일련의 단계로 구성됩니다. 각 단계는 축, 노드 테스트 및 조건자의 세 부분으로 구성된 구조입니다. 이러한 부분 및 XPath 1.0에 대한 자세한 내용은 XPath(XML 경로 언어)를 참조하세요. Windows 이벤트 로그는 식에 다음과 같은 제한을 적용합니다.

  • 축: 자식(기본값) 및 특성(및 해당 약어 "@") 축만 지원됩니다.
  • 노드 테스트: 노드 이름 및 NCName 테스트만 지원됩니다. 문자를 선택하는 "*" 문자가 지원됩니다.
  • 조건자: 위치 경로가 다음 제한을 준수하는 경우 유효한 모든 XPath 식이 허용됩니다.
    • 표준 연산자 OR, AND, =, !=, <=, <, >=, >및 괄호가 지원됩니다.
    • 노드 이름에 대한 문자열 값 생성은 지원되지 않습니다.
    • 역순으로 평가는 지원되지 않습니다.
    • 노드 집합은 지원되지 않습니다.
    • 네임스페이스 범위 지정은 지원되지 않습니다.
    • 네임스페이스, 처리 및 주석 노드는 지원되지 않습니다.
    • 컨텍스트 크기는 지원되지 않습니다.
    • 변수 바인딩은 지원되지 않습니다.
    • position 함수 및 해당 약식 배열 참조는 리프 노드에서만 지원됩니다.
    • Band 함수가 지원됩니다. 함수는 두 정수 인수에 대해 비트 AND를 수행합니다. 비트 AND의 결과가 0이 아닌 경우 함수는 true로 평가됩니다. 그렇지 않으면 함수가 false로 평가됩니다.
    • timediff 함수가 지원됩니다. 함수는 두 번째 인수와 첫 번째 인수의 차이를 계산합니다. 인수 중 하나는 리터럴 숫자여야 합니다. 인수는 FILETIME 표현을 사용해야 합니다. 결과는 두 번 사이의 밀리초 수입니다. 두 번째 인수가 이후 시간을 나타내는 경우 결과는 양수입니다. 그렇지 않으면 음수입니다. 두 번째 인수가 제공되지 않으면 현재 시스템 시간이 사용됩니다.