共用方式為


逐步解說:建立自定義記錄檔接聽程式 (Visual Basic)

本逐步解說示範如何建立客製化日誌接聽程式,並將其設定為接聽 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 Class
    

    WriteWriteLine 方法是基類所需的,它們會呼叫 MsgBox 以顯示其輸入。

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

    備註

    屬性 HostProtectionAttribute 僅適用於裝載 Common Language Runtime 且實作主機保護的 Unmanaged 應用程式,例如 SQL Server。

若要確保 My.Application.Log 使用您的記錄接聽程式,您應該將包含記錄接聽程式的元件強名稱命名。

下一個程序提供一些簡單步驟,用於建立強名稱的 log-listener 組件。 如需詳細資訊,請參閱建立和使用強式名稱的組件

若要為記錄接聽程式元件設定強名稱

  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> 區段中找出 <source> 區段,其 name 屬性為 “DefaultSource”,位於 <sources> 區段中。 <sources> 區段位於 <system.diagnostics> 區段的最上層 <configuration> 區段。

  3. 將此元素新增到 <listeners> 區段:

    <add name="SimpleLog" />
    
  4. <sharedListeners> 區段中,在最上層 <system.diagnostics> 區段內,找出 <configuration> 區段。

  5. 請將此元素新增到該 <sharedListeners> 區段:

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

    SimpleLogStrongName 的值更改為監聽器的強名稱。

另請參閱