HOWTO: C# .NET을 사용하여 이벤트 로그에 기록

기술 자료 번역 기술 자료 번역
기술 자료: 307024 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR307024
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 Microsoft .NET Framework를 사용하여 운영 체제의 이벤트 로그에 사용자 지정 항목을 추가하는 방법을 보여줍니다.

요구 사항

다음은 권장 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩입니다.
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server 또는 Windows NT 4.0 Server
  • Microsoft Visual Studio .NET

이벤트 로그에 기록

이벤트 로깅은 응용 프로그램에서 중요한 소프트웨어와 하드웨어 이벤트를 기록하는 표준 방법을 제공합니다. Windows는 로그를 볼 수 있는 표준 사용자 인터페이스인 이벤트 뷰어를 제공합니다. 공용 언어의 런타임 EventLog 구성 요소를 사용하면 로컬 컴퓨터와 원격 컴퓨터의 기존 이벤트 로그에 손쉽게 연결하여 로그 항목을 기록할 수 있습니다. 또한 기존 로그 항목을 읽고 사용자 지정 이벤트 로그를 만들 수 있습니다. 가장 간단한 형태의 이벤트 로그에 기록하는 작업에는 다음과 같이 예제 응용 프로그램을 만드는 몇 가지 단계만 포함됩니다.
  1. Visual Studio .NET을 엽니다.
  2. Microsoft C#에서 새 콘솔 응용 프로그램을 만듭니다. 그러면 Visual C# .NET에서 빈 Main() 메서드가 있는 공용 클래스를 자동으로 만듭니다.
  3. 프로젝트에서 System.dll을 참조하는지 확인합니다.
  4. SystemSystem.Diagnostics 네임스페이스에 using 문을 사용합니다. 그러면 나중에 코드에서 이 네임스페이스의 선언을 한정하지 않아도 됩니다. 이 명령문은 항상 선언 앞에 사용해야 합니다.
    using System;
    using System.Diagnostics;
  5. 이벤트 로그에 기록하려면 메시지, 기록할 로그 이름(없는 경우 자동으로 생성됨), 이벤트 소스를 표현하는 문자열과 같은 여러 가지 정보가 필요합니다. 특정 소스는 하나의 이벤트 로그에만 등록할 수 있으므로 둘 이상의 로그에 메시지를 기록하려면 여러 소스를 정의해야 합니다.
    string sSource;
    string sLog;
    string sEvent;
    
    sSource = "dotNET Sample App";
    sLog = "Application";
    sEvent = "Sample Event";
  6. 이러한 정보를 모두 갖춘 후 수행하는 첫번째 단계는 EventLog 클래스의 정적 메서드 두 개를 사용하여 소스가 있는지 확인한 다음 소스가 없는 경우 특정 이벤트 로그와 연관된 소스를 만드는 것입니다. 지정한 로그 이름이 없으면 첫번째 로그 항목을 기록할 때 해당 로그가 자동으로 생성됩니다. CreateEventSource 메서드에 로그 이름을 제공하지 않으면 기본적으로 응용 프로그램 로그가 사용됩니다.
    if (!EventLog.SourceExists(sSource))
    	EventLog.CreateEventSource(sSource,sLog);
  7. 여러 버전이 오버로드된 정적 메서드 EventLog.WriteEntry를 사용하여 이벤트 로그에 메시지를 기록할 수 있습니다. 다음 코드에는 소스 문자열과 메시지를 사용하는 가장 간단한 메서드와 이벤트 ID 및 이벤트 유형을 지정할 수 있는 보다 복잡한 메서드가 나와 있습니다.
    EventLog.WriteEntry(sSource,sEvent);
    EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Warning,  234);
  8. 코드를 저장하고 실행한 다음 이벤트 뷰어에서 응용 프로그램 로그를 확인하여 새 이벤트를 살펴봅니다.

전체 코드 예제

using System;
using System.Diagnostics;

namespace WriteToAnEventLog_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			string sSource;
			string sLog;
			string sEvent;

			sSource = "dotNET Sample App";
			sLog = "Application";
			sEvent = "Sample Event";

			if (!EventLog.SourceExists(sSource))
				EventLog.CreateEventSource(sSource,sLog);

			EventLog.WriteEntry(sSource,sEvent);
			EventLog.WriteEntry(sSource, sEvent,
				EventLogEntryType.Warning, 234);
		}
	}
}
<BR/>
<BR/>



속성

기술 자료: 307024 - 마지막 검토: 2001년 11월 5일 월요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C# .NET 2002 Standard Edition
키워드:?
kbhowto kbhowtomaster KB307024

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com