Dépannage : écouteurs de journalisation (Visual Basic)
Vous pouvez utiliser les objets My.Application.Log
et My.Log
pour enregistrer des informations sur les événements qui se produisent dans votre application.
Pour déterminer les écouteurs de journalisation qui reçoivent ces messages, consultez Procédure pas à pas : détermination de l’emplacement des informations My.Application.Log.
L’objet Log
peut utiliser le filtrage de journal pour limiter la quantité d’informations qu’il journalise. Si les filtres sont mal configurés, les journaux peuvent contenir des informations incorrectes. Pour plus d'informations sur le filtrage, consultez Procédure pas à pas : filtrage de la sortie de My.Application.Log.
Toutefois, si un journal est mal configuré, vous pouvez avoir besoin de davantage d’informations sur sa configuration actuelle. Vous pouvez accéder à ces informations grâce à la propriété avancée TraceSource
du journal.
Pour déterminer les écouteurs de journalisation de l’objet Log dans le code
Importez l’espace de noms System.Diagnostics au début du fichier de code. Pour plus d’informations, consultez Instruction Imports (espace de noms et type .NET).
Imports System.Diagnostics
Créez une fonction qui retourne une chaîne composée d’informations pour chacun des écouteurs du journal.
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
Passez la collection des écouteurs de la trace du journal à la fonction
GetListeners
et affichez la valeur de retour.Dim ListenerCollection As TraceListenerCollection ListenerCollection = My.Application.Log.TraceSource.Listeners Dim ListenersText As String = GetListeners(ListenerCollection) MsgBox(ListenersText)
Pour plus d’informations, consultez TraceSource.