다음을 통해 공유


연습: 사용자 지정 로그 수신기 만들기(Visual Basic)

이 연습에서는 사용자 지정 로그 수신기를 만들고 My.Application.Log 개체의 출력을 수신 대기하도록 구성하는 방법을 보여 줍니다.

시작

로그 수신기는 TraceListener 클래스에서 상속해야 합니다.

수신기를 만들려면

  • TraceListener에서 상속하는 이름이 SimpleListener인 클래스를 애플리케이션에서 만듭니다.

    Public Class SimpleListener
        Inherits System.Diagnostics.TraceListener
    
        <Security.Permissions.HostProtection(Synchronization:=True)>
        Public Overloads Overrides Sub Write(ByVal message As String)
            MsgBox("Write: " & message)
        End Sub
    
        <Security.Permissions.HostProtection(Synchronization:=True)>
        Public Overloads Overrides Sub WriteLine(ByVal message As String)
            MsgBox("WriteLine: " & message)
        End Sub
    End Class
    

    기본 클래스에 필요한 WriteWriteLine 메서드는 MsgBox를 호출하여 해당 입력을 표시합니다.

    WriteWriteLine 메서드의 특정이 기본 클래스 메서드와 일치하도록 이 두 메서드에 HostProtectionAttribute 특성이 적용됩니다. HostProtectionAttribute 특성을 사용하면 코드를 실행하는 호스트에서는 코드가 호스트 보호 동기화를 노출하는지를 확인할 수 있습니다.

    참고 항목

    HostProtectionAttribute 특성은 공용 언어 런타임을 호스트하고 SQL Server와 같은 호스트 보호를 구현하는 관리되지 않는 애플리케이션에서만 적용됩니다.

My.Application.Log가 로그 수신기를 사용하도록 하려면 로그 수신기를 포함하는 어셈블리에 강력한 이름을 지정해야 합니다.

다음 절차에서는 강력한 이름의 로그 수신기 어셈블리를 만들기 위한 몇 가지 간단한 단계를 제공합니다. 자세한 내용은 강력한 이름의 어셈블리 만들기 및 사용을 참조하세요.

로그 수신기 어셈블리에 강력한 이름을 지정하려면

  1. 솔루션 탐색기에서 프로젝트를 선택합니다. 프로젝트 메뉴에서 속성을 선택합니다.

  2. 시그니처 탭을 클릭합니다.

  3. 어셈블리 서명 상자를 선택합니다.

  4. 강력한 이름 키 파일 선택 드롭다운 목록에서 <새로 만들기>를 선택합니다.

    강력한 이름 키 만들기 대화 상자가 열립니다.

  5. 키 파일 이름 상자에 키 파일의 이름을 입력합니다.

  6. 암호 입력암호 확인 상자에 암호를 입력합니다.

  7. 확인을 클릭합니다.

  8. 애플리케이션을 다시 빌드합니다.

수신기 추가

이제 어셈블리에 강력한 이름을 지정했으므로 My.Application.Log에서 로그 수신기를 사용하도록 수신기의 강력한 이름을 결정해야 합니다.

강력한 이름의 형식은 다음과 같은 구문을 갖습니다.

<형식 이름>, <어셈블리 이름>, <버전 번호>, <문화>, <강력한 이름>

수신기의 강력한 이름을 결정하려면

  • 다음 코드에서는 SimpleListener에 대해 강력한 형식의 이름을 결정하는 방법을 보여 줍니다.

    Public Sub DisplaySimpleListenerStrongName()
        Dim t As Type = GetType(SimpleListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    강력한 형식의 이름은 프로젝트에 따라 다릅니다.

강력한 이름을 사용하면 수신기를 My.Application.Log 로그 수신기 컬렉션에 추가할 수 있습니다.

My.Application.Log에 수신기를 추가하려면

  1. 솔루션 탐색기에서 app.config를 마우스 오른쪽 단추로 클릭하고 열기를 선택합니다.

    또는

    app.config 파일이 있는 경우:

    1. 프로젝트 메뉴에서 새 항목 추가를 선택합니다.

    2. 새 항목 추가 대화 상자에서 애플리케이션 구성 파일을 선택합니다.

    3. 추가를 클릭합니다.

  2. <listeners> 특성이 "DefaultSource"인 <source> 섹션에서 name 섹션에 있는 <sources> 섹션을 찾습니다. <sources> 섹션은 최상위 <system.diagnostics> 섹션의 <configuration> 섹션에 있습니다.

  3. 이 요소를 <listeners> 섹션에 추가합니다.

    <add name="SimpleLog" />
    
  4. 최상위 <sharedListeners> 섹션의 <system.diagnostics> 섹션에서 <configuration> 섹션을 찾습니다.

  5. 다음 요소를 <sharedListeners> 섹션에 추가합니다.

    <add name="SimpleLog" type="SimpleLogStrongName" />
    

    수신기의 강력한 이름이 되도록 SimpleLogStrongName의 값을 변경합니다.

참고 항목