共用方式為


逐步解說:建立自訂的記錄檔接聽程式 (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 來顯示其輸入。

    HostProtectionAttribute 屬性會套用至 WriteWriteLine 方法,使其屬性符合基底類別方法。 HostProtectionAttribute 屬性可讓執行程式碼的主機決定讓程式碼公開主機保護同步處理。

    注意

    HostProtectionAttribute 屬性只適用於裝載通用語言執行平台以及實作主機保護的 Unmanaged 應用程式,例如 SQL Server。

為了確保 My.Application.Log 使用記錄檔接聽程式,您應該建立強式名稱的組件以包含記錄檔接聽程式。

下一個程序提供一些簡單的步驟,以建立強式名稱的記錄檔接聽程式組件。 如需詳細資訊,請參閱建立和使用強式名稱的組件

若要建立強式名稱的記錄檔接聽程式組件

  1. 方案總管中選取專案。 在 [ 專案 ] 功能表上,選擇 [ 屬性]。

  2. 按一下 [ 簽署 ] 索引標籤。

  3. 選取 [簽署組件] 方塊。

  4. 在 [選擇強式名稱金鑰檔] 下拉式清單中,選取 [<New>]。

    隨即開啟 [建立強式名稱金鑰]對話方塊。

  5. 在 [金鑰檔案名稱]方塊中,提供金鑰檔名稱。

  6. 將密碼輸入 [輸入密碼] 和 [確認密碼] 方塊。

  7. 按一下 [確定]

  8. 重建應用程式。

新增接聽程式

現在,組件已具有強式名稱,您必須決定接聽程式的強式名稱,以讓 My.Application.Log 使用您的記錄檔接聽程式。

具備強式名稱的類型格式如下:

<type name>、<assembly name>、<version number>、<culture>、<strong name>

若要決定接聽程式的強式名稱

  • 下列程式碼示範如何決定以強式名稱命名 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> 區段下,具有 <source> 屬性 "DefaultSource" 的 name 區段中找出 <sources> 區段。 <sources> 區段位於最上層 <system.diagnostics> 區段中的 <configuration> 區段內。

  3. 將此項目新增至 <listeners> 區段:

    <add name="SimpleLog" />
    
  4. 找出位於最上層 <sharedListeners> 區段中 <system.diagnostics> 區段的 <configuration> 區段。

  5. 將此項目加入至該 <sharedListeners> 區段︰

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

    SimpleLogStrongName 的值變更為接聽程式的強式名稱。

另請參閱