Visual Basic 및 Visual C# 개념

이 연습은 Visual Studio 응용 프로그램에서 이벤트 로깅의 주요 리본을 전달합니다.이 연습을 통해 당신은 어떻게 배울 수 있습니까?
  • EventLog 구성 요소 생성..
  • 사용자 정의 이벤트 로그를 만들고 삭제하기 위한 코드 작성..
  • 다양한 종류의 항목을 사용자 정의 로그에 기록합니다..
  • 사용자 정의 로그에서 항목 읽기..
  • 로그와 이벤트 소스가 있는지 확인..
  • 로그 항목 지우기..
  • 서버 자원 관리자를 사용하여 이벤트 로그 작업 결과를 검증합니다..

  • 사용자 인터페이스 만들기


    이 연습에서는 Windows 창을 만들고 그 위에 있는 일련의 컨트롤을 사용하여 일련의 이벤트 로그 작업을 시작합니다.
    응용 프로그램에 창과 컨트롤 만들기
  • "새 프로젝트"대화상자에서 Visual Basic 또는 C# Windows 응용 프로그램을 만들고 이를 EventLogApp1이라고 명명합니다
  • Windows 창에 8개의 단추를 추가하고 다음 속성을 설정합니다.
    컨트롤
    Text 속성
    Name 속성
    Button1
    사용자 정의 로그 만들기
    CreateLog
    Button2
    로그 삭제
    DeleteLog
    Button3
    쓰기 항목
    WriteEntry
    Button4
    로그 지우기
    ClearLog
    Button5
    로그가 있는지 확인
    VerifyLog
    Button6
    소스가 있는지 확인
    VerifySource
    Button7
    이벤트 소스 제거
    RemoveSource
    Button8
    읽기 항목
    ReadEntry
  • 각 버튼에 대해 다음을 수행합니다.
  • 디자이너에서 이 단추를 두 번 눌러서 이 단추의 기본 이벤트 처리 프로그램을 만듭니다.코드 편집기가 나타나고 버튼이 나타나는 Click 이벤트의 Sub..
  • [디자인] 뷰로 돌아가서 다음 버튼을 두 번 클릭합니다
  • 각 버튼에 대한 기본 이벤트 프로세서 Sub가 생성될 때까지 작업을 계속합니다

  • 도구 상자의 구성 요소 탭에서 EventLog 구성 요소를 창으로 드래그합니다.창 밑에 있는 구성 요소 표시줄 영역에 EventLog 구성 요소 인스턴스가 나타납니다

  • 사용자 정의 로그 작성 및 삭제


    이 과정에서 SourceExists 방법을 사용하여 원본이 존재하지 않는지 확인한 다음 존재하지 않는 로그의 이름을 사용하여 CreateEventSource 방법을 호출합니다.이 로그가 존재하지 않기 때문에, 이 코드를 실행할 때, 시스템은 사용자 정의 로그를 만들 것입니다.
    사용자 정의 로그 만들기
  • 코드 편집기에서 CreateLog_ 찾기Click 프로세스..
  • 다음 코드를 입력합니다.이벤트 로그와 원본은 쌍으로 만들어집니다. 이벤트 로그가 만들어지기 전에는 원본이 존재할 수 없습니다.이벤트 로그를 만들면 EventLog 구성 요소가 새 이벤트 로그에 액세스하도록 구성됩니다
    ' Visual Basic
    ' Source cannot already exist before creating the log.
    If EventLog.SourceExists("Source1") Then
       EventLog.DeleteEventSource("Source1")
    End If
    
    ' Logs and Sources are created as a pair.
    EventLog.CreateEventSource("Source1", "NewLog1")
    ' Associate the EventLog component with the new log.
    EventLog1.Log = "NewLog1"
    EventLog1.Source = "Source1"
    
    // C#
    // Source cannot already exist before creating the log.
    if (System.Diagnostics.EventLog.SourceExists("Source1"))
    {
       System.Diagnostics.EventLog.DeleteEventSource("Source1");
    }
    
    // Logs and Sources are created as a pair.
    System.Diagnostics.EventLog.CreateEventSource("Source1", "NewLog1");
    // Associate the EventLog component with the new log.
    eventLog1.Log = "NewLog1";
    eventLog1.Source = "Source1";

    안전 설명 이벤트 로그를 만들 때 자원이 이미 존재하면 해야 할 작업을 결정해야 합니다.다른 프로세스 (악성 프로세스일 수도 있음) 는 이벤트 로그를 만들었을 수도 있고, 이 이벤트 로그에 대한 접근권을 가지고 있을 수도 있습니다.이벤트 로그에 데이터를 넣으면 다른 프로세스에서 이 데이터를 사용할 수 있습니다.

  • 사용자 정의 로그 삭제
  • 코드 편집기에서 DeleteLog_ 찾기Click 프로세스..
  • 다음 코드를 입력합니다
    ' Visual Basic
    If EventLog.Exists("NewLog1") Then
       EventLog.Delete("NewLog1")
    End If
    
    // C#
    if (System.Diagnostics.EventLog.Exists("NewLog1"))
    {
       System.Diagnostics.EventLog.Delete("NewLog1");
    }

  • 항목을 로그에 쓰기


    이 과정에서 생성된 EventLog 구성 요소 인스턴스를 사용하여 항목을 로그에 기록합니다.이를 위해, 먼저 이 구성 요소를 방금 만든 원본 문자열을 사용하도록 설정한 다음, 쓸 두 가지 항목을 지정합니다: 정보 이벤트와 오류 이벤트.
    항목을 로그에 쓰기
  • 코드 편집기에서 WriteEntry_ 찾기Click 프로세스..
  • 다음 코드를 입력합니다.이 코드는 다시 로드된 EventLog를 사용합니다.이벤트 로그에 쓰기 위한 WriteEntry 메서드표시된 두 번째 창은 메시지의 종류를 지정할 수 있습니다.뒤에 있는 "테스트 코드"부분에서 서버 자원 관리자를 사용하여 항목을 보면 서로 다른 유형의 항목이 서로 다른 아이콘을 통해 표시됩니다..
    ' Visual Basic
    EventLog1.WriteEntry("This is an informational message")
    EventLog1.WriteEntry("This is an error message", _
       Diagnostics.EventLogEntryType.Error)
    
    // C#
    eventLog1.WriteEntry("This is an informational message");
    eventLog1.WriteEntry("This is an error message", 
       System.Diagnostics.EventLogEntryType.Error);

  • 로그 항목 지우기


    이 과정에서 Clear 방법을 사용하여 사용자 정의 로그에서 기존 항목을 제거합니다.
    로그 항목 지우기
  • 코드 편집기에서 ClearLog_ 찾기Click 프로세스..
  • EventLog 구성 요소 인스턴스에 대해 Clear 메서드를 호출합니다
    ' Visual Basic
    EventLog1.Clear()
    
    // C#
    eventLog1.Clear();

  • 로그 및 소스 확인


    이 과정에서 사용자 정의 로그가 존재하는지, 원본 문자열이 존재하는지 확인하는 두 가지 과정이 만들어집니다.이 프로세스를 사용하여 프로젝트를 실행할 때 실행되는 각종 작업의 결과를 테스트합니다.
    사용자 정의 로그가 있는지 확인
  • 코드 편집기에서 VerifyLog_ 찾기Click 프로세스..
  • 지정한 이벤트 로그가 존재하는지 계산하고 이에 따라 진짜나 가짜 메시지 상자를 표시합니다.이 코드 사용:
    ' Visual Basic
    Dim logExists As Boolean = EventLog.Exists("NewLog1")
    MessageBox.Show("Does the log exist? " & logExists.ToString())
    
    // C#
    bool logExists = System.Diagnostics.EventLog.Exists("NewLog1");
    MessageBox.Show("Does the log exist? " + logExists.ToString());

  • 소스가 있는지 확인
  • 코드 편집기에서 VerifySource_ 찾기Click 프로세스..
  • 지정한 원본이 존재하는지 계산하고 이에 따라 진짜나 가짜 메시지 상자를 표시합니다.이 코드 사용:
    ' Visual Basic
    Dim sourceExists As Boolean = EventLog.SourceExists("Source1")
    MessageBox.Show("Does the source exist? " + sourceExists.ToString())
    
    // C#
    bool sourceExists = 
       System.Diagnostics.EventLog.SourceExists("Source1");
    MessageBox.Show("Does the source exist? " + sourceExists.ToString());

  • 소스 제거


    이 과정에서 원본 문자열을 삭제하기 위해 코드를 작성합니다.이렇게 하려면 먼저 삭제할 소스(Source1)가 있는지 확인한 다음 DeleteEventSource 방법을 사용하여 제거합니다.
    생성된 이벤트 소스 제거
  • 코드 편집기에서 RemoveSource_ 찾기Click 프로세스..
  • 다음 코드를 추가합니다
    ' Visual Basic
    If EventLog.SourceExists("Source1") Then
       EventLog.DeleteEventSource("Source1")
    End If
    
    // C#
    if (System.Diagnostics.EventLog.SourceExists("Source1"))
    {
       System.Diagnostics.EventLog.DeleteEventSource("Source1");
    }

  • 읽기 항목


    이 과정에서 이벤트 로그에 순환적으로 접근하는 항목 집합과 로그에 있는 기존 메시지를 표시하기 위해 코드를 작성합니다.
    만든 사용자 정의 로그에서 항목 읽기
  • 코드 편집기에서 ReadEntry_ 찾기Click 프로세스..
  • 다음 코드를 추가합니다
    ' Visual Basic
    Dim entry As EventLogEntry
    If EventLog1.Entries.Count > 0 Then
       For Each entry In EventLog1.Entries
          System.Windows.Forms.MessageBox.Show(entry.Message)
       Next
    Else
       MessageBox.Show("There are no entries in the log.")
    End If
    
    // C#
    if (eventLog1.Entries.Count > 0) 
    {
       foreach (System.Diagnostics.EventLogEntry entry 
          in eventLog1.Entries)
       {
          MessageBox.Show(entry.Message);
       }
    }
    else 
    {
       MessageBox.Show("There are no entries in the log.");
    }

  • 테스트 코드


    이 절에서는 서버 자원 관리자를 사용하여 코드의 결과를 검증합니다.
    서버 리소스 관리자 시작
  • [보기] 메뉴에서 서버 리소스 관리자 액세스..
  • 현재 서버의 노드를 확장하고 그 아래의 이벤트 로그 노드를 확장합니다.
    서버 리소스 매니저의 서버 노드는 Visual Basic 및 Visual C# 에 있습니다.NET 의 표준 버전에서는 사용할 수 없습니다.자세한 내용은 Visual Basic Standard Edition 또는 Visual C# Standard Edition 기능을 참조하십시오.이 경우 Windows 이벤트 뷰어를 사용하여 응용 프로그램의 결과를 볼 수 있습니다.

  • 애플리케이션 생성 및 실행
  • 파일을 저장하고 F5 키를 눌러 프로젝트를 생성하고 시작합니다.생성된 8개의 단추가 있는 창이 나타납니다
  • 사용자 정의 로그 만들기 버튼을 클릭합니다.
    Windows 이벤트 로그를 작성하려면 응용 프로그램을 실행하는 서버에 적절한 권한이 있어야 합니다.보안 오류가 발생하면 시스템 관리자에게 문의하십시오.
  • 이 제품으로 돌아가 현재 실행 중인 상태에서 서버 자원 관리자에서 이벤트 로그 노드를 우클릭하십시오
  • 새로 고침을 클릭합니다
  • 현재 NewLog1 로그가 이벤트 로그 노드에 있는지 확인..

  • 사용자 정의 로그 생성, 삭제 및 검증 테스트
  • 실행 중인 창으로 돌아가서 로그가 존재하는지 확인하기 단추를 누르십시오.텍스트를 True로 설정하라는 프롬프트가 나타나야 합니다..
  • 로그 삭제 버튼을 클릭한 다음 로그 존재 확인 버튼을 다시 클릭합니다.이번 힌트는 False..
  • "사용자 정의 로그 만들기"단추를 다시 눌러 로그를 다시 만듭니다..

  • 사용자 정의 로그에 항목을 쓰고 사용자 정의 로그에서 항목을 읽는 테스트
  • 창에서 "쓰기 항목"단추를 누르십시오
  • 서버 리소스 관리자에 액세스하고 NewLog1 로그를 엽니다.
    서버 리소스 매니저의 서버 노드는 Visual Basic 및 Visual C# 에 있습니다.NET 의 표준 버전에서는 사용할 수 없습니다.자세한 내용은 Visual Basic Standard Edition 또는 Visual C# Standard Edition 기능을 참조하십시오.
  • 아래의 Source1 노드를 확장합니다.이 로그에 두 항목이 추가되었습니다.하나는 정보성 항목임을 표시하는 아이콘이 있고, 다른 하나는 잘못된 항목임을 표시하는 아이콘이 있습니다
  • 이 창으로 돌아가서'항목 읽기'단추를 누르십시오.하나는 정보성 항목을 포함하고 다른 하나는 오류 항목을 포함하는 두 가지 힌트를 받을 수 있습니다.
    쓰기 버튼을 여러 번 클릭하면 추가 메시지가 표시됩니다.

  • 로그 지우기 테스트
  • 창에서 로그 지우기 단추를 누르십시오
  • 서버 리소스 관리자에서 New Log1 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 클릭합니다.이제 이 로그에 항목이 더 이상 포함되지 않는 것을 보아야 합니다.

  • 소스 문자열 제거 테스트
  • 창에서 "이벤트 원본 제거"단추를 누르십시오
  • 소스 확인 버튼을 클릭합니다.False 표시 프롬프트가 표시되어 소스 소스 1이 더 이상 존재하지 않음을 나타냅니다
  • 쓰기 버튼을 클릭합니다.
    이 동작을 사용하면 현재 원본이 존재하지 않으므로 로그에 항목을 쓸 수 있습니다.
    WriteEntry 메서드가 설정됩니다.
  • 서버 리소스 관리자에서 New Log1 노드를 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 클릭합니다.이 일지에서 두 항목을 보아야 한다.
  • 소스 확인 버튼을 다시 클릭합니다.True 를 표시하는 프롬프트가 수신되어 소스 소스 1이 있음을 나타냅니다
  • 옵션으로 테스트할 때 "DeleteLog"단추를 눌러야 할 수도 있습니다.이것은 시스템 구성에 영구적으로 변경되지 않도록 로그 NewLog1 및 소스 Source1을 제거합니다

  • 좋은 웹페이지 즐겨찾기