Solucionando problemas: ouvintes de log (Visual Basic)
É possível usar os objetos My.Application.Log
e My.Log
para registrar em log as informações sobre eventos que ocorrem em seu aplicativo.
Para determinar quais ouvintes de log recebem essas mensagens, consulte Instruções passo a passo: determinando onde My.Application.Log grava informações.
O objeto Log
pode usar filtragem de log para limitar a quantidade de informações que ele registra no log. Se os filtros tiverem sido configurados incorretamente, os logs poderão conter informações incorretas. Para obter informações sobre filtragem, consulte Instruções passo a passo: filtrando a saída de My.Application.Log.
No entanto, se um log tiver sido configurado incorretamente, talvez seja necessário obter mais informações sobre sua configuração atual. É possível obter essas informações por meio da propriedade TraceSource
avançada do log.
Para determinar os ouvintes de log do objeto Log no código
Importe o namespace System.Diagnostics no início do arquivo de código. Para obter mais informações, consulte Instrução Imports (tipo e namespace .NET).
Imports System.Diagnostics
Crie uma função que retorna uma cadeia de caracteres que consiste de informações para cada um dos ouvintes de log.
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
Passe a coleção dos ouvintes de rastreamento do log para a função
GetListeners
e exiba o valor retornado.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.