EventLog 구성 요소 소개

업데이트: 2007년 11월

Microsoft Windows의 이벤트 로그 기능은 표준적이고 집중화된 방식으로 응용 프로그램이 중요한 소프트웨어 및 하드웨어 이벤트를 기록할 수 있도록 합니다. 오류가 발생하면 시스템 관리자나 기술 지원 담당자는 오류의 원인을 찾아내어 손실된 데이터를 복구하고 오류가 재발하지 않도록 조치해야 합니다. 응용 프로그램, 운영 체제 및 기타 시스템 서비스는 메모리 부족 상태나 디스크 액세스 시도 실패와 같은 중요한 이벤트를 기록합니다. 시스템 관리자는 이벤트 로그를 사용하여 오류의 원인과 오류가 발생한 상황을 확인할 수 있습니다.

Windows에서는 이러한 이벤트 로그를 볼 수 있는 표준 사용자 인터페이스와 로그 엔트리를 검사할 수 있는 프로그래밍 인터페이스를 제공합니다. Microsoft Visual Basic 버전 6.0에서는 일부 이벤트 로그에 대해 제한된 쓰기 작업을 수행할 수는 있었지만 시스템의 모든 로그에 대해 쉽게 읽거나 상호 작용할 수 없었습니다.

EventLog 구성 요소를 사용하면 로컬 컴퓨터와 원격 컴퓨터 모두에서 쉽게 Windows 이벤트 로그에 연결하고 이 로그에 엔트리를 쓸 수 있습니다. 또한 기존 로그에서 엔트리를 읽고 사용자 지정 이벤트 로그를 만들 수도 있습니다.

서버 탐색기를 사용하면 이벤트 로그에 엔트리를 쓰고 읽을 수 있을 뿐만 아니라 액세스 권한이 있는 모든 서버의 이벤트 로그 목록을 볼 수 있습니다. 서버 탐색기에서 이벤트 로그 노드를 확장하면 현재 로그 및 이 로그에 기록된 이벤트를 볼 수 있습니다. 또한 특정 이벤트 로그를 서버 탐색기에서 디자이너로 끌어 오면 해당 속성이 선택된 로그를 가리키도록 자동 설정되게 하는 EventLog 구성 요소의 인스턴스를 만들 수 있습니다.

참고:

또한 GetEventLogs 메서드를 사용하여 컴퓨터의 모든 이벤트 로그 목록을 검색할 수 있습니다.

참고:

보안을 위해 이벤트 로그의 사용이 제한되는 경우도 있습니다. 자세한 내용은 이벤트 로그의 보안 구분을 참조하십시오.

Windows 이벤트 로그의 핵심 개념

이벤트는 Windows에 정의되어 있는 것처럼 사용자에게 알려야 하는 운영 체제나 응용 프로그램에서 발생하는 모든 중요한 사건을 의미합니다. 중대한 이벤트는 화면에 즉시 메시지를 표시하는 방식으로 사용자에게 전달됩니다. 기타 이벤트는 나중에 참조할 수 있도록 여러 이벤트 로그 중의 하나에 기록됩니다. 모든 이벤트 로그 엔트리는 오류, 경고, 정보, 성공 감사 또는 실패 감사 중 하나로 분류됩니다.

다음 세 가지 이벤트 로그는 Windows 2000 또는 Windows NT 4.0을 실행하는 컴퓨터에서 기본적으로 사용할 수 있습니다.

  • 시스템 로그: 시스템 구성 요소에서 발생하는 이벤트를 추적합니다(예: 드라이버 문제).

  • 보안 로그: 보안 변경 내용 및 침해 가능성을 추적합니다.

  • 응용 프로그램 로그: 등록된 응용 프로그램에서 발생하는 이벤트를 추적합니다.

이러한 로그와 함께 Active Directory와 같은 프로그램은 독자적인 기본 로그를 만들 수 있습니다. System.Diagnostics 네임스페이스의 언어 기능을 사용하여 사용자 지정 로그를 만들 수도 있습니다.

이벤트 로그에 기록된 이벤트는 특정 소스와 연결됩니다. 이벤트 로그에 쓰기 전에 새 소스를 만듭니다. EventLogInstaller 개체를 사용하거나 CreateEventSource 메서드를 사용하여 새 소스를 구성할 수 있습니다. 새 이벤트 소스를 만들려면 해당 컴퓨터에서 관리 권한이 있어야 합니다. 이벤트 범주 및 메시지 문자열에 대한 지역화된 리소스에 이벤트 소스를 등록할 수 있습니다. 응용 프로그램에서 실제 문자열 값을 지정하는 대신 리소스 식별자를 사용하여 이벤트 로그 엔트리를 쓸 수 있습니다. 리소스 파일을 사용하도록 소스를 구성하는 방법에 대한 자세한 내용은 EventLogInstallerEventSourceCreationData 클래스를 참조하십시오.

기록할 이벤트 선택

다음은 이벤트 로그 기능이 유용하게 사용되는 경우입니다.

  • 리소스 문제: 응용 프로그램의 코드 버그나 잘못된 메모리 할당으로 인해 메모리 부족 상황이 발생하여 성능이 떨어지고 메모리를 할당할 수 없을 때 경고 이벤트를 기록합니다. 이 이벤트를 통해 오류의 원인을 확인할 수 있습니다.

  • 정보 이벤트: 데이터베이스 서버와 같은 서버 기반 응용 프로그램은 사용자 로그온, 데이터베이스 열기 또는 파일 전송 시작 등의 상황을 기록합니다. 또한 서버는 파일에 액세스할 수 없거나 호스트 프로세스의 연결이 끊기는 등의 오류 발생, 데이터베이스 손상 또는 파일 전송 성공 여부 등의 오류 이벤트를 기록할 수 있습니다.

이벤트 기록에는 디스크 공간 및 프로세서 시간과 같은 리소스가 소모됩니다. 이벤트 로그에 필요한 디스크 공간과 이벤트를 기록하는 응용 프로그램의 오버헤드는 기록할 정보량에 따라 다릅니다. 따라서 필수 정보만 기록하는 것이 좋습니다. 또한 성능 감소를 방지하려면 주 코드 경로가 아니라 코드의 오류 경로에 이벤트 로그 호출을 넣는 것이 가장 좋습니다.

참고 항목

작업

연습 : 이벤트 로그, 이벤트 소스 및 엔트리 살펴보기

개념

이벤트 로그 엔트리 형식

이벤트 로그 참조

EventLog 프로그래밍 아키텍처

참조

EventLog