2010-08-30 4 views
33

WriteEvent 메서드를 EventLog 클래스로 사용해 보았습니다.EventLog.WriteEntry와 EventLog.WriteEvent 메서드의 차이점

EventLog.WriteEntry("Saravanan", "Application logs an entry", 
        EventLogEntryType.Information, 2, 3); 
EventLog.WriteEvent("Saravanan", new EventInstance(2, 3), 
           "Application logs an event"); 

두 결과 모두 동일한 결과를 출력합니다.

이러한 방법의 사용에는 차이가 있습니까?

사소한 차이가있을 경우 새로운 방법을 도입하는 대신 WriteEvent() 또는 WriteEntry() 메서드가 오버로드되어서 왜 완료되지 않았습니까?

답변

40

EventLog.WriteEntry은 문자열을 쓸 수있는 이벤트 로그에 쓸 수있는 "빠르고 지저분한"방법입니다. EventLog.WriteEvent을 사용하면 기본 Win32 API를 최대한 활용할 수 있습니다. 그러나이를 수행하려면 message compiler (mc.exe)을 사용하여 컴파일 한 지역화 된 메시지 파일을 작성해야합니다. 각 이벤트는 대체 문자열을 포함 할 수 있으며 컴퓨터의 로케일과 일치하도록 현지화 될 수 있습니다.

메시지 파일을 작성하는 추가 단계를 피하려면 이벤트 로그 API에 대한 .Net 랩퍼가 인수로 제공된 문자열을 단순히 삽입하는 메시지를 사용하십시오. 이 메시지는 EventLog.WriteEntry에 의해 사용되며 .Net 폴더에 EventLogMessages.dll에 포함 된 리소스로 저장됩니다.

일반적으로 EventLog.WriteEntry을 사용하는 것이 적합하지만 메시지를 현지화해야하거나 소스 코드 외부에서 유지 관리하려는 경우 메시지 파일을 만들고 EventLog.WriteEvent을 사용해야합니다.

관련 문제