Sorun Giderme: Günlük Dinleyicileri (Visual Basic)

My.Application.LogMy.Log ve nesnelerini kullanarak uygulamanızda gerçekleşen olaylar hakkındaki bilgileri günlüğe kaydedebilirsiniz.

Bu iletileri hangi günlük dinleyicilerinin aldığını belirlemek için bkz. İzlenecek yol: My.Application.Log'un Bilgileri Nereye Yazdığını Belirleme.

Nesnesi, Log günlüğe kaydedebileceği bilgi miktarını sınırlamak için günlük filtrelemeyi kullanabilir. Filtreler yanlış yapılandırılmışsa, günlükler yanlış bilgi içeriyor olabilir. Filtreleme hakkında daha fazla bilgi için bkz . İzlenecek yol: My.Application.Log Çıktısını Filtreleme.

Ancak, bir günlük yanlış yapılandırılmışsa, geçerli yapılandırması hakkında daha fazla bilgiye ihtiyacınız olabilir. Bu bilgilere günlüğün gelişmiş TraceSource özelliği aracılığıyla ulaşabilirsiniz.

Koddaki Log nesnesinin günlük dinleyicilerini belirlemek için

  1. Kod dosyasının System.Diagnostics başındaki ad alanını içeri aktarın. Daha fazla bilgi için bkz . Imports Deyimi (.NET Ad Alanı ve Türü).

    Imports System.Diagnostics
    
  2. Günlüğün dinleyicilerinin her biri için bilgilerden oluşan bir dize döndüren bir işlev oluşturun.

    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
    
  3. Günlüğün izleme dinleyicilerinin koleksiyonunu işleve GetListeners geçirin ve dönüş değerini görüntüleyin.

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

    Daha fazla bilgi için bkz. TraceSource.

Ayrıca bkz.