Condividi tramite


Risoluzione dei problemi: listener di log

Aggiornamento: novembre 2007

È possibile utilizzare gli oggetti My.Application.Log e My.Log per registrare informazioni sugli eventi che si verificano nell'applicazione.

Per determinare i listener di log a cui sono inviati questi messaggi, vedere Procedura dettagliata: individuazione della posizione di inserimento delle informazioni con My.Application.Log.

L'oggetto Log può utilizzare il filtraggio di log per limitare la quantità di informazioni registrate. Se i filtri non sono configurati correttamente, i log potrebbero contenere informazioni errate. Per ulteriori informazioni sull'utilizzo dei filtri, vedere Procedura dettagliata: filtraggio dell'output di My.Application.Log.

Tuttavia, se un log è configurato in modo errato, potrebbero essere necessarie maggiori informazioni sulla configurazione corrente. È possibile ottenere tali informazioni grazie alla proprietà TraceSource avanzata del log.

Per determinare i listener di log per l'oggetto Log nel codice

  1. Importare lo spazio dei nomi System.Diagnostics all'inizio del file di codice. Per ulteriori informazioni, vedere Istruzione Imports (tipo e spazio dei nomi .NET).

    Imports System.Diagnostics
    
  2. Creare una funzione che consente di restituire una stringa costituita dalle informazioni relative a ciascuno dei listener di 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 &= ": Unhandeled log type: " & _
                    listenerType.ToString
            End If
            ret &= vbCrLf
        Next
    
        Return ret
    End Function
    
  3. Passare l'insieme dei listener di analisi del log alla funzione GetListeners, quindi visualizzare il valore restituito.

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

    Per ulteriori informazioni, vedere Proprietà TraceSource (My.Application.Log e My.Log).

Vedere anche

Attività

Procedura dettagliata: individuazione della posizione di inserimento delle informazioni con My.Application.Log

Concetti

Utilizzo dei log applicazione in Visual Basic

Riferimenti

Oggetto My.Application.Log

Oggetto My.Log