Partilhar via


Resolução de problemas: Serviços de Escuta de Registos (Visual Basic)

Pode utilizar os My.Application.Log objetos e My.Log para registar informações sobre eventos que ocorrem na sua aplicação.

Para determinar que serviços de escuta de registo recebem essas mensagens, consulte Instruções: Determinar Onde As Minhas.Aplicações.Informações de Escrita de Registos.

O Log objeto pode utilizar a filtragem de registos para limitar a quantidade de informações que regista. Se os filtros estiverem configurados incorretamente, os registos poderão conter as informações erradas. Para obter mais informações sobre a filtragem, consulte Instruções: Filtrar Saída My.Application.Log.

No entanto, se um registo estiver configurado incorretamente, poderá precisar de mais informações sobre a configuração atual. Pode aceder a estas informações através da propriedade avançada TraceSource do registo.

Para determinar os serviços de escuta do registo do objeto Registo no código

  1. Importe o System.Diagnostics espaço de nomes no início do ficheiro de código. Para obter mais informações, veja Declaração de Importações (Espaço de Nomes.NET e Tipo).

    Imports System.Diagnostics
    
  2. Crie uma função que devolva uma cadeia que consiste em informações para cada um dos serviços de escuta do registo.

    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. Transmita a coleção dos serviços de escuta de rastreio do registo para a GetListeners função e apresente o valor devolvido.

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

    Para obter mais informações, consulte TraceSource.

Ver também