우리의 응용 프로그램에는 치명적이지 않은 오류가 발생하고 응용 프로그램이 복구되는 특정 상황이 있습니다.응용 프로그램 이벤트 소스에 쓸 수 있습니까?
예를 들어,이 항목을 선택 목록에 채울 때 일부 가져 오기 가능한 항목을 올바르게 식별하지 못했습니다. 오류로 인해 앱이 중단되지 않지만 일부 항목을로드하지 못했다는 경고 메시지가 사용자에게 표시됩니다.
이 경우 경고는 응용 프로그램 이벤트 로그에 오류가 기록됩니다. 앱이 복구되는 치명적이지 않은 오류이지만 이벤트 로그에 기록하면 필요하면 원래 오류를 볼 수 있습니다.
문제는 소프트웨어가 고급 사용자 계정으로 설치 될 수 있어야한다는 것입니다. 관리자 계정이 아니기 때문에 애플리케이션의 맞춤 이벤트 소스를 생성 할 수 없습니다.
목표는 "응용 프로그램"이벤트 원본 (응용 프로그램 이벤트 로그에 이미 있음)에 오류를 쓰는 것입니다. 그러나 이렇게하면 다음과 유사한 텍스트도 포함됩니다.
원본 응용 프로그램에서 이벤트 ID 0에 대한 설명을 찾을 수 없습니다. 이 이벤트를 발생시키는 구성 요소가 로컬 컴퓨터에 설치되어 있지 않거나 설치가 손상되었습니다. 로컬 컴퓨터에 구성 요소를 설치하거나 복구 할 수 있습니다.
우리가 쓸 때 EventID가 0이기 때문입니다. 이 접근법은 작업을 완료하게 될 것이지만 더 좋은 방법이 있습니까? 응용 프로그램 이벤트 소스의 EventID를 지정하여 응용 프로그램에서 가져온 것을 나타내는 관리자가 아닌 방법이 있습니까?
일부 읽기를 완료했습니다. 이벤트 원본과 결합 된 EventID는 어떤 종류의 이벤트가 발생했는지 식별합니다. 간단히 : 경고 오류는 신경 쓰지 않지만 만든 소스를 사용해서는 안됩니다. 나는 (관리가 아닌 설치 등) 하나를 만들 수있는 입장이 아니기 때문에 이러한 종류의 이벤트에 사용할 수있는 이벤트 소스를 찾거나 다른 메커니즘을 사용하여 로깅 할 수 있기를 바랍니다. 생각? – MoSlo
.NET 4.5를 사용하는 경우 EventSource 클래스 (http://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource.aspx)를 사용하여 등록하지 않고도 ETW에 이벤트를 쓸 수 있습니다 . 단점은 이벤트가 이벤트 로그에 저장되지 않는다는 것입니다. 따라서 이벤트를 적극적으로 듣지 않는다면 이벤트를 얻을 수 없습니다. – fsimonazzi