疑難排解:記錄檔接聽程式 (Visual Basic)
您可以使用 My.Application.Log 和 My.Log 物件,記錄在應用程式中發生的事件資訊。
若要判斷接收這些訊息的記錄檔接聽程式,請參閱逐步解說:判斷 My.Application.Log 寫入資訊的位置 (Visual Basic)。
Log 物件可以使用記錄檔篩選,限制所記錄的資訊數量。 如果不當設定篩選條件,則記錄檔可能會包含錯誤資訊。 如需篩選的詳細資訊,請參閱逐步解說:篩選 My.Application.Log 輸出 (Visual Basic)。
不過,如果未正確設定記錄檔,則可能會需要記錄檔目前組態的詳細資訊。 您可以藉由記錄檔的進階 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 寫入資訊的位置 (Visual Basic)