Panduan: Memfilter Output My.Application.Log (Visual Basic)
Panduan ini menunjukkan cara mengubah pemfilteran log default untuk objek My.Application.Log
, untuk mengontrol informasi apa yang diteruskan dari objek Log
ke pendengar dan informasi apa yang ditulis oleh pendengar. Anda dapat mengubah perilaku pengelogan bahkan setelah membangun aplikasi, karena informasi konfigurasi disimpan dalam file konfigurasi pada aplikasi tersebut.
Memulai
Setiap pesan yang ditulis My.Application.Log
memiliki tingkat keparahan terkait, yang digunakan mekanisme pemfilteran untuk mengontrol output log. Aplikasi sampel ini menggunakan metode My.Application.Log
untuk menulis beberapa pesan log dengan tingkat keparahan yang berbeda.
Untuk membangun aplikasi sampel
Buka proyek Aplikasi Windows Visual Basic baru.
Tambahkan tombol bernama Tombol1 ke Form1.
Dalam handler peristiwa Click untuk Tombol1, tambahkan kode berikut:
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
Jalankan aplikasi di debugger.
Tekan Tombol1.
Aplikasi menulis informasi berikut ke output debug aplikasi dan file log.
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
Tutup aplikasi.
Untuk informasi tentang cara melihat jendela output debug aplikasi, lihat Jendela Output. Untuk informasi tentang lokasi file log aplikasi, lihat Panduan: Menentukan Tempat My.Application.Log Menulis Informasi.
Catatan
Secara default, aplikasi membersihkan output file log saat aplikasi ditutup.
Dalam contoh di atas, panggilan kedua ke metode WriteEntry dan panggilan ke metode WriteException menghasilkan output log, sementara panggilan pertama dan terakhir ke metode
WriteEntry
tidak menghasilkan log output. Ini karena tingkat keparahanWriteEntry
danWriteException
adalah "Informasi" dan "Kesalahan", yang keduanya diizinkan olehMy.Application.Log
pemfilteran log default dari objek tersebut. Namun, peristiwa dengan tingkat keparahan "Mulai" dan "Hentikan" dicegah agar tidak menghasilkan output log.
Pemfilteran untuk Semua Pendengar My.Application.Log
Objek My.Application.Log
menggunakan suatu SourceSwitch bernama DefaultSwitch
untuk mengontrol pesan mana yang diteruskannya dari metode WriteEntry
dan WriteException
ke pendengar log. Anda dapat mengonfigurasi DefaultSwitch
dalam file konfigurasi aplikasi dengan mengatur nilainya ke salah satu nilai enumerasi SourceLevels. Secara default, nilainya adalah "Informasi".
Tabel ini memperlihatkan tingkat keparahan yang diperlukan agar Log menulis pesan ke pendengar, menimbang pengaturan DefaultSwitch
tertentu.
Nilai DefaultSwitch | Tingkat keparahan pesan yang diperlukan untuk output |
---|---|
Critical |
Critical |
Error |
Critical atau Error |
Warning |
Critical , Error , atau Warning |
Information |
Critical , Error , Warning , atau Information |
Verbose |
Critical , Error , Warning , Information , atau Verbose |
ActivityTracing |
Start , Stop , Suspend , Resume , atau Transfer |
All |
Semua pesan diperbolehkan. |
Off |
Semua pesan diblokir. |
Catatan
Metode WriteEntry
dan WriteException
masing-masing memiliki kelebihan beban yang tidak menentukan tingkat keparahan. Tingkat keparahan implisit untuk kelebihan beban WriteEntry
adalah "Informasi", dan tingkat keparahan implisit untuk kelebihan beban WriteException
adalah "Kesalahan".
Tabel ini menjelaskan output log yang ditampilkan dalam contoh sebelumnya: dengan pengaturan DefaultSwitch
default dari "Informasi", hanya panggilan kedua ke metode WriteEntry
dan panggilan ke metode WriteException
menghasilkan output log.
Untuk mencatat peristiwa pelacakan aktivitas saja
Klik kanan app.config di Penjelajah Solusi dan pilih Buka.
-atau-
Jika tidak ada file app.config:
Pada menu Proyek, klik Tambahkan Item Baru.
Dari kotak dialog Tambahkan Item Baru, pilih File Konfigurasi Aplikasi.
Klik Tambahkan.
Temukan bagian
<switches>
, yang ada di bagian<system.diagnostics>
, yang berada di bagian<configuration>
tingkat -atas.Temukan elemen menambahkan
DefaultSwitch
ke kumpulan sakelar. Ini akan terlihat mirip dengan elemen ini:<add name="DefaultSwitch" value="Information" />
Ubah nilai atribut
value
menjadi "ActivityTracing".Konten file app.config harus mirip dengan XML berikut:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>
Jalankan aplikasi di debugger.
Tekan Tombol1.
Aplikasi menulis informasi berikut ke output debug aplikasi dan file log:
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Tutup aplikasi.
Ubah nilai atribut
value
kembali ke "Informasi".Catatan
Pengaturan pengalihan
DefaultSwitch
hanya mengontrolMy.Application.Log
. Ini tidak mengubah perilaku kelas System.Diagnostics.Trace dan System.Diagnostics.Debug .NET.
Pemfilteran Individual untuk Pendengar My.Application.Log
Contoh sebelumnya menunjukkan cara mengubah pemfilteran untuk semua output My.Application.Log
. Contoh ini menunjukkan cara memfilter pendengar log individual. Secara default, aplikasi memiliki dua listener yang menulis ke output debug aplikasi dan file log.
File konfigurasi mengontrol perilaku pendengar log dengan memungkinkan masing-masing pendengar memiliki filter, yang mirip dengan sakelar untuk My.Application.Log
. Pendengar log akan menghasilkan pesan hanya jika tingkat keparahan pesan diizinkan oleh filter DefaultSwitch
log dan pendengar log.
Contoh ini menunjukkan cara mengonfigurasi pemfilteran untuk pendengar debug baru dan menambahkannya ke objek Log
. Pendengar debug default harus dihapus dari objek Log
, sehingga jelas bahwa pesan debug berasal dari pendengar debug baru.
Untuk mencatat peristiwa pelacakan aktivitas saja
Klik kanan app.config di Penjelajah Solusi dan pilih Buka.
-atau-
Jika tidak ada file app.config:
Pada menu Proyek, klik Tambahkan Item Baru.
Dari kotak dialog Tambahkan Item Baru, pilih File Konfigurasi Aplikasi.
Klik Tambahkan.
Klik kanan app.config di Penjelajah Solusi. Pilih Buka.
Temukan bagian
<listeners>
, di bagian<source>
dengan "DefaultSource" atributname
, yang terletak di bagian<sources>
. Bagian<sources>
berada di bawah bagian<system.diagnostics>
, di bagian<configuration>
tingkat-atas.Tambahkan elemen ini ke bagian
<listeners>
:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
Temukan bagian
<sharedListeners>
, di bagian<system.diagnostics>
, di bagian tingkat<configuration>
atas.Tambahkan elemen ini ke bagian
<sharedListeners>
:<add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>
Filter EventTypeFilter mengambil salah satu nilai enumerasi SourceLevels sebagai atribut
initializeData
.Konten file app.config harus mirip dengan XML berikut:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>
Jalankan aplikasi di debugger.
Tekan Tombol1.
Aplikasi menulis informasi berikut ke file log aplikasi:
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
Aplikasi menulis lebih sedikit informasi ke output debug aplikasi karena pemfilteran yang lebih ketat.
Default Error 2 Error
Tutup aplikasi.
Untuk informasi selengkapnya tentang mengubah pengaturan log setelah penyebaran, lihat Bekerja dengan Log Aplikasi.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk