共用方式為


逐步解說:建立自訂的記錄檔接聽程式

更新:2007 年 11 月

這個逐步解說會示範如何建立自訂的記錄檔接聽程式,並將它設定為接聽 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 屬性 (Attribute) 則會套用到 WriteWriteLine 方法,使這些方法的屬性符合基底類別方法。HostProtectionAttribute 屬性可以讓執行程式碼的主應用程式判斷該程式碼是否公開 (Expose) 主應用程式同步處理防護。

    注意事項:

    HostProtectionAttribute 屬性只有在裝載 Common Language Runtime 以及實作主應用程式防護的 Unmanaged 應用程式 (例如 SQL Server) 上才會生效。

若要確保 My.Application.Log 會使用您的記錄檔接聽程式,您應該以強式名稱來命名記錄檔接聽程式所在的組件。

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

若要以強式名稱命名記錄檔接聽程式組件

  1. 在 [方案總管] 中選取專案。在 [專案] 功能表上,選擇 [屬性]。如需詳細資訊,請參閱專案設計工具簡介

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

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

  4. 從 [選擇強式名稱金鑰檔] 下拉式清單中,選擇 [<新增>]。

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

  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. 在具有 name 屬性為 "DefaultSource" 的 <source> 區段 (此區段位於 <sources> 區段) 中,尋找 <listeners>。<sources> 區段是在最上層 <configuration> 區段的 <system.diagnostics> 區段中。

  3. 將這個項目加入至 <listeners> 區段:

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

  5. 將這個項目加入至此 <sharedListeners> 區段:

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

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

請參閱

工作

HOW TO:在 Visual Basic 中記錄例外狀況

HOW TO:寫入記錄訊息

逐步解說:變更 My.Application.Log 寫入資訊的位置

概念

在 Visual Basic 中使用應用程式記錄檔

參考

My.Application.Log 物件

My.Log 物件