방법: 사용자 지정 이벤트 로그 만들기 및 제거
업데이트: 2007년 11월
EventLog 클래스를 사용하여 로컬 컴퓨터 또는 원격 컴퓨터에서 사용자 지정 이벤트 로그를 만들 수 있습니다. 구성 요소가 기본 응용 프로그램 로그에 엔트리를 쓰는 것보다 더욱 정밀한 방식으로 엔트리를 구성하려면 사용자 지정 로그를 만듭니다. 예를 들어, OrderEntry라는 구성 요소에서 이벤트 로그에 엔트리 정보를 쓴다고 가정합니다. 이 엔트리를 응용 프로그램 로그의 다른 엔트리보다 더 오랫동안 백업 및 저장하려고 합니다. 이 경우, 구성 요소를 응용 프로그램 로그에 등록하여 쓰는 대신 OrdersLog라는 사용자 지정 로그를 만들어 해당 구성 요소를 등록한 다음 이 로그에 엔트리를 쓸 수 있습니다. 이 방식을 사용하면 모든 주문 정보가 한 장소에 저장되고 응용 프로그램 로그의 엔트리가 삭제되는 경우에도 영향을 받지 않습니다.
간접적으로 CreateEventSource 메서드를 사용하여 사용자 지정 로그를 만들 수도 있습니다. 이 메서드는 새 소스를 만들어 엔트리를 쓸 로그를 지정할 수 있도록 합니다. 아직 존재하지 않는 로그에 쓰도록 지정하면 시스템에서 자동으로 사용자 지정 로그를 만들고 사용자의 구성 요소를 해당 로그의 소스로 등록합니다.
참고: |
---|
사용자 지정 로그를 삭제할 때는 다른 로그와 마찬가지로 Delete 메서드를 호출합니다. 자세한 내용은 방법: 이벤트 로그 삭제를 참조하십시오. |
이벤트 로그를 만들 때와 EventLog 구성 요소의 인스턴스를 만들 때의 차이에 유의해야 합니다. CreateEventSource 메서드를 사용하는 경우에는 프로젝트 또는 응용 프로그램에서 구성 요소를 만드는 것이 아니라 Windows에서 새 사용자 지정 이벤트 로그를 만듭니다. EventLog 구성 요소의 인스턴스를 만드는 경우에는 외부 이벤트 로그를 참조하는 프로젝트 내부에서 구성 요소를 만듭니다. 이벤트 뷰어에서 CreateEventSource 메서드로 만들어진 이벤트 로그는 볼 수 있지만 구성 요소 인스턴스는 볼 수 없습니다.
참고: |
---|
일반적으로 응용 프로그램을 설치하는 동안 새 이벤트 소스를 만듭니다. 이를 통해 운영 체제에서 등록된 이벤트 소스의 목록과 구성을 새로 고칠 수 있습니다. 운영 체제에서 이벤트 소스 목록을 새로 고치지 않은 상태에서 새 소스로 이벤트를 쓰려고 하면 쓰기 작업이 실패합니다. 설치하는 동안 소스를 만들 수 없는 경우에는 처음 쓰기 작업을 하기 전(대개의 경우 응용 프로그램 초기화 도중)에 소스를 만드십시오. 이 방법을 사용할 때는 초기화 코드가 컴퓨터에서 관리자 권한으로 실행되도록 해야 합니다. 새 이벤트 소스를 만들려면 이 권한이 필요합니다. |
서버 탐색기 또는 Windows 2000 컴퓨터 관리 창에서 사용자 지정 로그를 볼 수 있습니다. 자세한 내용은 방법: 서버 탐색기에서 이벤트 로그 사용 또는 방법: 서버 탐색기에서 이벤트 뷰어 시작을 참조하십시오.
원격 컴퓨터에 대한 적절한 액세스 권한이 있어야 로그를 만들거나 삭제할 수 있습니다. 자세한 내용은 이벤트 로그의 보안 구분을 참조하십시오.
보안 정보: |
---|
이벤트 로그를 만들 때 해당 리소스가 이미 존재하고 있는지 확인해야 합니다. 악의를 가진 다른 프로세스에서 이미 해당 리소스를 만들어 이에 대한 액세스 권한을 가지고 있을 수도 있습니다. 이 경우 이벤트 로그에 데이터를 입력하면 다른 프로세스에서 이 데이터를 사용할 수 있게 됩니다. 기본 이벤트 로그에 대한 자세한 내용은 방법: 특정 이벤트 로그 존재 여부 확인을 참조하십시오. |
사용자 지정 이벤트 로그를 만들려면
CreateEventSource 메서드를 호출하고 소스 문자열과 만들 로그 파일의 이름을 지정합니다.
참고: 로그 이름을 지정하지 않으면 기본적으로 응용 프로그램 로그가 지정됩니다. 이 경우에는 새 로그를 만들지 않고 응용 프로그램 로그에 지정된 소스를 등록합니다. 새 로그를 만들면 처음 여덟 문자만을 검사하여 로그 이름이 고유한지 확인합니다.
다음 예제에서는 로컬 컴퓨터에서 MyNewLog라는 사용자 지정 로그를 만드는 방법을 보여 줍니다. 이 코드에서는 System.Diagnostics 네임스페이스에 대한 Imports 또는 using 문이 있다고 가정합니다.
EventLog.CreateEventSource("ApplicationName", "LogName")
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "LogName");
원격 컴퓨터에서 사용자 지정 이벤트 로그를 만들려면 컴퓨터 이름을 세 번째 매개 변수로 지정합니다. 다음 코드에서는 이러한 예제를 보여 줍니다.
Dim creationData As New EventSourceCreationData("ApplicationName", "LogName") creationData.MachineName = "ServerName" EventLog.CreateEventSource(creationData)
System.Diagnostics.EventSourceCreationData creationData = new System.Diagnostics.EventSourceCreationData("ApplicationName", "LogName"); creationData.MachineName = "ServerName"; EventLog.CreateEventSource(creationData);