Sdílet prostřednictvím


Poradce při potížích: Posluchače protokolu (Visual Basic)

Můžete použít objekty My.Application.Log a My.Log k protokolování informací o událostech, ke kterým dochází v aplikaci.

Chcete-li určit, kteří posluchači protokolovali tyto zprávy, přejděte Podrobné pokyny: Určení, kde My.Application.Log zapisuje informace (Visual Basic).

Objekt Log může používat filtrování protokolování k omezení množství informací, které zaznamenává. Pokud nejsou tyto filtry správně nakonfigurovány, protokoly mohou obsahovat nesprávné informace. Další informace o filtrování, naleznete v tématu Podrobné pokyny: Filtrování výstupu My.Application.Log (Visual Basic).

Pokud však je protokolování nakonfigurováno nesprávně, můžete potřebovat další informace o akutální konfiguraci. Tyto informace můžete získat prostřednictvím rozšířené vlastnosti protokolování TraceSource.

Chcete-li zjistit protokolového posluchače pro daný protokolový objekt v kódu

  1. Importujte obor názvů System.Diagnostics na začátku souboru s kódem. Další informace naleznete v tématu Imports Statement (.NET Namespace and Type).

    Imports System.Diagnostics
    
  2. Vytvořte funkci, která vrací řetězec tvořený informacemi pro všechny protokolové posluchače.

    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. Předejte tuto kolekci protokolových posluchačů trasování do funkce GetListeners a zobrazit vrácené hodnoty.

    Dim ListenerCollection As TraceListenerCollection
    ListenerCollection = My.Application.Log.TraceSource.Listeners
    Dim ListenersText As String = GetListeners(ListenerCollection)
    MsgBox(ListenersText)
    

    Další informace naleznete v tématu TraceSource.

Viz také

Úkoly

Podrobné pokyny: Určení, kde My.Application.Log zapisuje informace (Visual Basic)

Odkaz

Microsoft.VisualBasic.Logging.Log

Koncepty

Práce s protokoly aplikace v jazyce Visual Basic