疑難排解:記錄檔接聽程式
更新:2007 年 11 月
您可以使用 My.Application.Log 和 My.Log 物件,記錄在應用程式中發生的事件資訊。
若要判斷接收這些訊息的記錄檔接聽程式,請參閱逐步解說:判斷 My.Application.Log 寫入資訊的位置。
Log 物件可以使用記錄檔篩選,限制所記錄的資訊數量。如果不當設定篩選條件,則記錄檔可能會包含錯誤資訊。如需篩選的詳細資訊,請參閱逐步解說:篩選 My.Application.Log 輸出。
不過,如果未正確設定記錄檔,則可能會需要記錄檔目前組態的詳細資訊。您可以藉由記錄檔的進階 TraceSource 屬性 (Property) 取得此項資訊。
若要判斷程式碼中記錄物件的記錄檔接聽程式
請在程式碼檔的開頭匯入 System.Diagnostics 命名空間。如需詳細資訊,請參閱 Imports 陳述式 (.NET 命名空間和型別)。
Imports System.Diagnostics
建立會傳回字串的函式,該字串包含每個記錄檔接聽程式的資訊。
Function GetListeners(ByVal listeners As TraceListenerCollection) As String Dim ret As String = "" For Each listener As TraceListener In listeners ret &= listener.Name Dim listenerType As Type = listener.GetType If listenerType Is GetType(DefaultTraceListener) Then Dim tmp As DefaultTraceListener = _ DirectCast(listener, DefaultTraceListener) ret &= ": Writes to the debug output." ElseIf listenerType Is GetType(Logging.FileLogTraceListener) Then Dim tmp As Logging.FileLogTraceListener = _ DirectCast(listener, Logging.FileLogTraceListener) ret &= ": Log filename: " & tmp.FullLogFileName ElseIf listenerType Is GetType(EventLogTraceListener) Then Dim tmp As EventLogTraceListener = _ DirectCast(listener, EventLogTraceListener) ret &= ": Event log name: " & tmp.EventLog.Log ElseIf listenerType Is GetType(XmlWriterTraceListener) Then Dim tmp As Diagnostics.XmlWriterTraceListener = _ DirectCast(listener, XmlWriterTraceListener) ret &= ": XML log" ElseIf listenerType Is GetType(ConsoleTraceListener) Then Dim tmp As ConsoleTraceListener = _ DirectCast(listener, ConsoleTraceListener) ret &= ": Console log" ElseIf listenerType Is GetType(DelimitedListTraceListener) Then Dim tmp As DelimitedListTraceListener = _ DirectCast(listener, DelimitedListTraceListener) ret &= ": Delimited log" Else ret &= ": Unhandeled log type: " & _ listenerType.ToString End If ret &= vbCrLf Next Return ret End Function
將記錄檔的追蹤接聽程式集合傳遞至 GetListeners 函式,並顯示傳回值。
Dim ListenerCollection As TraceListenerCollection ListenerCollection = My.Application.Log.TraceSource.Listeners Dim ListenersText As String = GetListeners(ListenerCollection) MsgBox(ListenersText)
如需詳細資訊,請參閱 TraceSource 屬性 (My.Application.Log 和 My.Log)。
請參閱
工作
逐步解說:判斷 My.Application.Log 寫入資訊的位置