다음을 통해 공유


안내: My.Application.Log에서 정보를 기록하는 위치 변경(Visual Basic)

My.Application.LogMy.Log 개체를 사용하여 애플리케이션에서 발생하는 이벤트에 대한 정보를 기록할 수 있습니다. 이 안내에서는 기본 설정을 재정의하고 Log 개체가 다른 로그 리스너에 기록하도록 하는 방법을 보여줍니다.

필수 조건

개체는 Log 여러 로그 수신기에 정보를 쓸 수 있습니다. 구성을 변경하기 전에 로그 수신기의 현재 구성을 확인해야 합니다. 자세한 내용은 사용 방법: My.Application.Log에서 정보를 쓰는 위치 확인

방법: 텍스트 파일에 이벤트 정보 쓰기 또는 방법: 애플리케이션 이벤트 로그에 쓰기를 검토할 수 있습니다.

수신기를 추가하려면

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

    -또는-

    app.config 파일이 없는 경우:

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

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

    3. 추가를 클릭합니다.

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

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

    <!-- Uncomment to connect the application file log. -->
    <!-- <add name="FileLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="EventLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="Delimited" /> -->
    <!-- Uncomment to connect the XML log. -->
    <!-- <add name="XmlWriter" /> -->
    <!-- Uncomment to connect the console log. -->
    <!-- <add name="Console" /> -->
    
  4. 수신하려는 Log 메시지의 로그 수신기의 주석을 해제하십시오.

  5. 최상위 <sharedListeners> 섹션의 <system.diagnostics> 섹션에서, <configuration> 섹션을 찾습니다.

  6. 해당 <sharedListeners> 섹션에 이러한 요소를 추가합니다.

    <add name="FileLog"
         type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
               Microsoft.VisualBasic, Version=8.0.0.0,
               Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         initializeData="FileLogWriter" />
    <add name="EventLog"
         type="System.Diagnostics.EventLogTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="sample application"/>
    <add name="Delimited"
         type="System.Diagnostics.DelimitedListTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="c:\temp\sampleDelimitedFile.txt"
         traceOutputOptions="DateTime" />
    <add name="XmlWriter"
         type="System.Diagnostics.XmlWriterTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="c:\temp\sampleLogFile.xml" />
    <add name="Console"
         type="System.Diagnostics.ConsoleTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="true" />
    
  7. app.config 파일의 내용은 다음 XML과 유사해야 합니다.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
        <sources>
          <!-- This section configures My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog"/>
              <!-- Uncomment to connect the application file log. -->
              <!-- <add name="FileLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="EventLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="Delimited" /> -->
              <!-- Uncomment to connect the XML log. -->
              <!-- <add name="XmlWriter" /> -->
              <!-- Uncomment to connect the console log. -->
              <!-- <add name="Console" /> -->
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
                     Microsoft.VisualBasic, Version=8.0.0.0,
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               initializeData="FileLogWriter" />
          <add name="EventLog"
               type="System.Diagnostics.EventLogTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="sample application"/>
          <add name="Delimited"
               type="System.Diagnostics.DelimitedListTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleDelimitedFile.txt"
               traceOutputOptions="DateTime" />
          <add name="XmlWriter"
               type="System.Diagnostics.XmlWriterTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleLogFile.xml" />
          <add name="Console"
               type="System.Diagnostics.ConsoleTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="true" />
        </sharedListeners>
      </system.diagnostics>
    </configuration>
    

수신기를 다시 구성하려면

  1. 섹션 <add>에서 수신기의 <sharedListeners> 요소를 찾습니다.

  2. 이 특성은 type 수신기 형식의 이름을 제공합니다. 이 형식은 TraceListener 클래스로부터 상속받아야 합니다. 강력한 이름의 타입 이름을 사용하여 올바른 타입이 사용되도록 합니다. 자세한 내용은 아래의 "강력한 이름이 지정된 형식을 참조하는 방법" 섹션을 참조하세요.

    사용할 수 있는 몇 가지 형식은 다음과 같습니다.

    다른 유형의 로그 수신기가 정보를 작성하는 위치에 대한 자세한 내용은 해당 형식의 설명서를 참조하세요.

  3. 애플리케이션에서 로그 수신기 개체를 만들 때 생성자 매개 변수로 특성을 전달합니다 initializeData . 특성의 initializeData 의미는 추적 수신기에 따라 달라집니다.

  4. 로그 수신기를 만든 후 애플리케이션은 수신기의 속성을 설정합니다. 다른 특성에 의해 <add> 요소 내에서 이러한 속성이 정의됩니다. 특정 수신기의 속성에 대한 자세한 내용은 해당 수신기 유형에 대한 설명서를 참조하세요.

강력한 이름의 형식을 참조하려면

  1. 올바른 형식이 로그 수신기에 사용되는지 확인하려면 정규화된 형식 이름과 강력한 이름의 어셈블리 이름을 사용해야 합니다. 강력한 이름의 형식 구문은 다음과 같습니다.

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

  2. 이 코드 예제에서는 이 경우 정규화된 형식인 "System.Diagnostics.FileLogTraceListener"에 대해 강력한 이름의 형식 이름을 확인하는 방법을 보여 줍니다.

    Public Sub DisplayStrongName()
        Dim t As Type = GetType(Logging.FileLogTraceListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    이는 출력으로, 위의 "수신기를 추가하려면" 절차처럼 강력한 이름 부여 형식을 고유하게 참조하는 데 사용할 수 있습니다.

    Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

참고하십시오