本逐步解說示範如何建立客製化日誌接聽程式,並將其設定為接聽 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
Write 和 WriteLine 方法是基類所需的,它們會呼叫
MsgBox
以顯示其輸入。屬性 HostProtectionAttribute 會套用至 Write 和 WriteLine 方法,使其屬性符合基類方法。 屬性 HostProtectionAttribute 可讓執行程式碼的主機判斷程式代碼公開主機保護同步處理。
備註
屬性 HostProtectionAttribute 僅適用於裝載 Common Language Runtime 且實作主機保護的 Unmanaged 應用程式,例如 SQL Server。
若要確保 My.Application.Log
使用您的記錄接聽程式,您應該將包含記錄接聽程式的元件強名稱命名。
下一個程序提供一些簡單步驟,用於建立強名稱的 log-listener 組件。 如需詳細資訊,請參閱建立和使用強式名稱的組件。
若要為記錄接聽程式元件設定強名稱
在 [方案總管] 中選取專案。 在 [ 專案] 功能表上,選擇 [ 屬性]。
按一下 [ 簽署 ] 索引標籤。
選取 簽署元件 方塊。
從<下拉式清單中選取>新增。
[ 建立強名稱金鑰 ] 對話框隨即開啟。
在 [ 金鑰檔案名 ] 方塊中提供金鑰檔案的名稱。
在 [ 輸入密碼 ] 和 [ 確認密碼 ] 方塊中輸入密碼。
按一下 [確定]。
重建應用程式。
新增監聽器
既然元件具有強名稱,您必須判斷監聽器的強名稱,以便 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>
區段,其name
屬性為 “DefaultSource”,位於<sources>
區段中。<sources>
區段位於<system.diagnostics>
區段的最上層<configuration>
區段。將此元素新增到
<listeners>
區段:<add name="SimpleLog" />
在
<sharedListeners>
區段中,在最上層<system.diagnostics>
區段內,找出<configuration>
區段。請將此元素新增到該
<sharedListeners>
區段:<add name="SimpleLog" type="SimpleLogStrongName" />
將
SimpleLogStrongName
的值更改為監聽器的強名稱。