Delen via


Problemen oplossen: logboeklisteners (Visual Basic)

U kunt de My.Application.Log objecten en My.Log gebruiken om informatie te registreren over gebeurtenissen die in uw toepassing plaatsvinden.

Als u wilt bepalen welke logboeklisteners deze berichten ontvangen, raadpleegt u Walkthrough: Determine Where My.Application.Log Writes Information (Stapsgewijze instructies: Bepalen waar My.Application.Log schrijft informatie).

Het Log object kan logboekfiltering gebruiken om de hoeveelheid informatie te beperken die wordt opgeslagen. Als de filters onjuist zijn geconfigureerd, bevatten de logboeken mogelijk de verkeerde informatie. Zie Walkthrough: Filtering My.Application.Log Output voor meer informatie over filteren.

Als een logboek echter onjuist is geconfigureerd, hebt u mogelijk meer informatie nodig over de huidige configuratie. U kunt deze informatie vinden via de geavanceerde eigenschap van TraceSource het logboek.

De logboeklisteners voor het logboekobject in code bepalen

  1. Importeer de System.Diagnostics naamruimte aan het begin van het codebestand. Zie Importinstructie (.NET-naamruimte en -type) voor meer informatie.

    Imports System.Diagnostics
    
  2. Maak een functie die een tekenreeks retourneert die bestaat uit informatie voor elk van de listeners van het logboek.

    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
    
  3. Geef de verzameling traceringslisteners van het logboek door aan de GetListeners functie en geef de retourwaarde weer.

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

    Voor meer informatie raadpleegt u TraceSource.

Zie ook