이 연습에서는 사용자 지정 로그 수신기를 만들고 개체의 My.Application.Log 출력을 수신하도록 구성하는 방법을 보여 줍니다.
시작하기
로그 수신기는 TraceListener 클래스를 상속해야 합니다.
수신기를 만들려면
애플리케이션에서
SimpleListener를 상속하는 클래스 TraceListener를 만드세요.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 ClassWrite 및 WriteLine 메서드는 기본 클래스에 필요하며, 입력을 표시하기 위해
MsgBox를 호출합니다.HostProtectionAttribute 특성이 기본 클래스 메서드와 일치하도록 Write 특성이 및 WriteLine 메서드에 적용됩니다. 이 HostProtectionAttribute 특성을 사용하면 코드를 실행하는 호스트가 코드가 호스트 보호 동기화를 노출하는지 확인할 수 있습니다.
비고
이 HostProtectionAttribute 특성은 공용 언어 런타임을 호스트하고 SQL Server와 같은 호스트 보호를 구현하는 관리되지 않는 애플리케이션에서만 적용됩니다.
로그 수신기를 My.Application.Log 사용하려면 로그 수신기가 포함된 어셈블리의 이름을 강력하게 지정해야 합니다.
다음 절차에서는 강력한 이름의 로그 수신기 어셈블리를 만들기 위한 몇 가지 간단한 단계를 제공합니다. 자세한 내용은 강력한 이름의 어셈블리 만들기 및 사용을 참조하세요.
로그 수신기 어셈블리의 이름을 강력하게 지정하려면
솔루션 탐색기에서 프로젝트를 선택해야 합니다. 프로젝트 메뉴에서 속성을 선택합니다.
서명 탭을 클릭합니다.
어셈블리 서명 상자를 선택합니다.
< 드롭다운 목록에서 >새로 만들기를 선택합니다.
강력한 이름 키 만들기 대화 상자가 열립니다.
키 파일 이름 상자에 키 파일의 이름을 입력합니다.
암호 입력 및 암호 확인 상자에 암호를 입력합니다.
OK를 클릭합니다.
애플리케이션을 다시 빌드합니다.
수신기 추가
어셈블리가 강력한 이름을 갖게 되었으므로, 로그 수신기 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에 수신기를 추가하려면
솔루션 탐색기에서 app.config 마우스 오른쪽 단추로 클릭하고 열기를 선택합니다.
-또는-
app.config 파일이 있는 경우:
프로젝트 메뉴에서 새 항목 추가를 선택합니다.
새 항목 추가 대화 상자에서 애플리케이션 구성 파일을 선택합니다.
추가를 클릭합니다.
<listeners>섹션에서<source>섹션의 "DefaultSource" 속성이 있는name섹션을<sources>에서 찾습니다.<sources>섹션은<system.diagnostics>섹션에 있으며, 최상위<configuration>섹션에 위치해 있습니다.섹션에
<listeners>다음 요소를 추가합니다.<add name="SimpleLog" />최상위
<sharedListeners>섹션의<system.diagnostics>섹션에서,<configuration>섹션을 찾습니다.이 요소를 해당
<sharedListeners>섹션에 추가합니다.<add name="SimpleLog" type="SimpleLogStrongName" />SimpleLogStrongName의 값을 수신기의 강력한 이름으로 변경하십시오.
참고하십시오
.NET