共用方式為


疑難排解:記錄檔接聽程式

更新:2007 年 11 月

您可以使用 My.Application.Log 和 My.Log 物件,記錄在應用程式中發生的事件資訊。

若要判斷接收這些訊息的記錄檔接聽程式,請參閱逐步解說:判斷 My.Application.Log 寫入資訊的位置

Log 物件可以使用記錄檔篩選,限制所記錄的資訊數量。如果不當設定篩選條件,則記錄檔可能會包含錯誤資訊。如需篩選的詳細資訊,請參閱逐步解說:篩選 My.Application.Log 輸出

不過,如果未正確設定記錄檔,則可能會需要記錄檔目前組態的詳細資訊。您可以藉由記錄檔的進階 TraceSource 屬性 (Property) 取得此項資訊。

若要判斷程式碼中記錄物件的記錄檔接聽程式

  1. 請在程式碼檔的開頭匯入 System.Diagnostics 命名空間。如需詳細資訊,請參閱 Imports 陳述式 (.NET 命名空間和型別)

    Imports System.Diagnostics
    
  2. 建立會傳回字串的函式,該字串包含每個記錄檔接聽程式的資訊。

    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
    
  3. 將記錄檔的追蹤接聽程式集合傳遞至 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 寫入資訊的位置

概念

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

參考

My.Application.Log 物件

My.Log 物件