疑難排解:記錄檔接聽程式 (Visual Basic)
您可以使用 My.Application.Log
和 My.Log
物件來記錄應用程式中發生之事件的相關資訊。
若要判斷哪些記錄檔接聽程式接收這些訊息,請參閱逐步解說:判斷 My.Application.Log 寫入資訊的位置。
Log
物件可以使用記錄檔篩選來限制記錄的資訊數量。 如果篩選條件設定錯誤,記錄檔可能包含錯誤的資訊。 如需詳細資訊,請參閱逐步解說:篩選 My.Application.Log 輸出。
不過,如果記錄檔設定不正確,您可能需要目前組態的詳細資訊。 您可以透過記錄檔的進階 TraceSource
屬性來取得這項資訊。
判斷程式碼中記錄檔物件的記錄檔接聽程式
在程式碼檔案的開頭處匯入 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 &= ": Unhandled 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。