Bagikan melalui


Pemecahan masalah: Pendengar Log (Visual Basic)

Anda dapat menggunakan objek My.Application.Log dan My.Log untuk mencatat informasi tentang peristiwa yang terjadi di aplikasi Anda.

Untuk menentukan pendengar log mana yang menerima pesan tersebut, lihat Panduan: Menentukan Di Mana My.Application.Log Menulis Informasi.

Objek Log dapat menggunakan pemfilteran log untuk membatasi jumlah informasi yang dicatatnya. Jika filter salah dikonfigurasi, log mungkin berisi informasi yang salah. Untuk informasi selengkapnya tentang pemfilteran, lihat Panduan: Memfilter Output My.Application.Log.

Namun, jika log dikonfigurasi secara tidak benar, Anda mungkin memerlukan informasi lebih lanjut tentang konfigurasinya saat ini. Anda bisa mendapatkan informasi ini melalui properti TraceSource lanjutan log.

Untuk menentukan pendengar log untuk objek Log dalam kode

  1. Impor namespace System.Diagnostics pada permulaan file code. Untuk informasi selengkapnya, lihat Pernyataan Impor (.NET Namespace and Jenis).

    Imports System.Diagnostics
    
  2. Buat fungsi yang mengembalikan string yang terdiri dari informasi untuk masing-masing pendengar 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 &= ": Unhandled log type: " &
                    listenerType.ToString
            End If
            ret &= vbCrLf
        Next
    
        Return ret
    End Function
    
  3. Teruskan kumpulan pendengar jejak log ke fungsi GetListeners, dan tampilkan nilai yang dikembalikan.

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

    Untuk informasi selengkapnya, lihat TraceSource.

Lihat juga