Udostępnij za pośrednictwem


Rozwiązywanie problemów: Detektory dziennika (Visual Basic)

Można użyć My.Application.Log i My.Log obiekty do rejestrowania informacji o zdarzeniach, które występują w aplikacji.

Aby określić, które detektory dziennika otrzymywać tych wiadomości, zobacz Instruktaż: Określanie, gdzie My.Application.Log zapisuje informacje (Visual Basic).

Log Obiektu można użyć filtrowania dziennika do ograniczenia ilości informacji, który loguje się on.Jeśli filtry są niepoprawnie skonfigurowane, dzienniki może zawierać błędne informacje.Aby uzyskać więcej informacji na temat filtrowania, zobacz Instruktaż: Filtrowanie danych wyjściowych My.Application.Log (Visual Basic).

Jednakże gdy dziennik jest niepoprawnie skonfigurowany, może być konieczne więcej informacji o jego bieżącą konfigurację.Aby przejść do zaawansowane tej informacji za pomocą dziennika TraceSource właściwości.

Aby określić detektory dziennika dla obiektu dziennika w kodzie

  1. Przywóz System.Diagnostics obszaru nazw na początku pliku kodu.Aby uzyskać więcej informacji, zobacz Przywóz instrukcji (.Obszar nazw netto i typ).

    Imports System.Diagnostics
    
  2. Utwórz funkcję, która zwraca ciąg składający się z informacji dla każdego dziennika detektory.

    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 &= ": Unhandeled log type: " & 
                    listenerType.ToString
            End If
            ret &= vbCrLf
        Next
    
        Return ret
    End Function
    
  3. Przekazać kolekcji dziennika śledzenia detektory do GetListeners działać i wyświetlania wartości zwracanej.

    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.

Zobacz też

Zadania

Instruktaż: Określanie, gdzie My.Application.Log zapisuje informacje (Visual Basic)

Informacje

Microsoft.VisualBasic.Logging.Log

Koncepcje

Praca z Dzienniki aplikacji w języku Visual Basic