Rozwiązywanie problemów: odbiorniki logu (Visual Basic)
Obiekty i My.Log
umożliwiają My.Application.Log
rejestrowanie informacji o zdarzeniach występujących w aplikacji.
Aby określić, które odbiorniki dziennika odbierają te komunikaty, zobacz Przewodnik: określanie miejsca zapisu informacji w pliku My.Application.Log.
Obiekt Log
może używać filtrowania dzienników, aby ograniczyć ilość informacji, które rejestruje. Jeśli filtry są nieprawidłowo skonfigurowane, dzienniki mogą zawierać nieprawidłowe informacje. Aby uzyskać więcej informacji na temat filtrowania, zobacz Przewodnik: filtrowanie danych wyjściowych My.Application.Log.
Jeśli jednak dziennik jest niepoprawnie skonfigurowany, może być konieczne więcej informacji o jego bieżącej konfiguracji. Te informacje można uzyskać za pośrednictwem właściwości zaawansowanej TraceSource
dziennika.
Aby określić odbiorniki dziennika dla obiektu Log w kodzie
Zaimportuj System.Diagnostics przestrzeń nazw na początku pliku kodu. Aby uzyskać więcej informacji, zobacz Import Statement (.NET Namespace and Type).
Imports System.Diagnostics
Utwórz funkcję zwracającą ciąg składający się z informacji dla każdego odbiornika dziennika.
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
Przekaż kolekcję odbiorników śledzenia dziennika do
GetListeners
funkcji i wyświetl wartość zwracaną.Dim ListenerCollection As TraceListenerCollection ListenerCollection = My.Application.Log.TraceSource.Listeners Dim ListenersText As String = GetListeners(ListenerCollection) MsgBox(ListenersText)
Aby uzyskać więcej informacji, zobacz TraceSource.