Bagikan melalui


Bekerja dengan Log Aplikasi di Visual Basic

Objek My.Application.Log dan My.Log memudahkan untuk menulis informasi pengelogan dan pelacakan ke log.

Bagaimana Pesan Dicatat

Pertama, tingkat keparahan pesan diperiksa melalui properti Switch dari properti TraceSource log. Secara default, hanya pesan dengan tingkat keparahan "Informasi" dan yang lebih tinggi yang diteruskan ke pendengar lacak, sebagaimana ditentukan dalam koleksi log TraceListener. Kemudian, setiap pendengar membandingkan tingkat keparahan pesan dengan properti pendengar Switch . Jika tingkat keparahan pesan cukup tinggi, pendengar akan menuliskan pesan.

Diagram berikut menunjukkan bagaimana pesan yang ditulis ke metode WriteEntry diteruskan ke metode pendengar penelusuran WriteLine log:

Diagram yang memperlihatkan Panggilan log saya.

Anda dapat mengubah perilaku log dan pendengar pelacakan dengan mengubah file konfigurasi aplikasi. Diagram berikut menunjukkan korespondensi antara bagian log dan file konfigurasi.

Diagram yang memperlihatkan Konfigurasi log saya.

Tempat Pesan Dicatat

Jika assembly tidak memiliki file konfigurasi, objek My.Application.Log dan objek My.Log akan menulis ke output debug aplikasi melalui kelas DefaultTraceListener. Selain itu, My.Application.Log objek menulis ke file log perakitan (melalui FileLogTraceListener kelas), sementara My.Log objek menulis ke output halaman Web ASP.NET (melalui WebPageTraceListener kelas).

Output debug dapat dilihat di jendela Output Visual Studio saat menjalankan aplikasi Anda dalam mode debug. Untuk membuka jendela Output , klik item menu Debug , arahkan ke Windows, lalu klik Output. Di jendela Output , pilih Debug dari kotak Tampilkan output dari .

Secara default, My.Application.Log menulis file log di jalur untuk data aplikasi pengguna. Anda dapat mengambil jalur dari properti FullLogFileName dalam objek DefaultFileLogWriter. Format jalur tersebut adalah sebagai berikut:

BasePath\CompanyName\ProductName\ProductVersion

Nilai umum untuk BasePath adalah sebagai berikut.

C:\Dokumen dan Pengaturan\username\Data Aplikasi

Nilai CompanyName, ProductName, dan ProductVersion berasal dari informasi perakitan aplikasi. Bentuk nama file log adalah AssemblyName.log, di mana AssemblyName adalah nama file rakitan tanpa ekstensi. Jika lebih dari satu file log diperlukan, seperti ketika log asli tidak tersedia ketika aplikasi mencoba menulis ke log, format untuk nama file log adalah AssemblyName-iterasi.log, di mana iteration adalah Integer positif.

Anda dapat mengambil alih perilaku default dengan menambahkan atau mengubah file konfigurasi komputer dan aplikasi. Untuk informasi selengkapnya, lihat Panduan: Mengubah Tempat My.Application.Log Menulis Informasi.

Mengonfigurasi Pengaturan Log

Objek Log memiliki implementasi default yang berfungsi tanpa file konfigurasi aplikasi, app.config. Untuk mengubah default, Anda harus menambahkan file konfigurasi dengan pengaturan baru. Untuk informasi selengkapnya, lihat Panduan Langkah-Demi-Langkah: Memfilter Output My.Application.Log.

Bagian konfigurasi log terletak di simpul <system.diagnostics> di simpul utama <configuration> file app.config. Informasi log didefinisikan dalam beberapa simpul:

  • Pendengar untuk Log objek ditentukan dalam simpul <sources> bernama DefaultSource.

  • Filter tingkat keparahan Log untuk objek ditentukan dalam simpul <switches> bernama DefaultSwitch.

  • Penyimpan log didefinisikan pada node <sharedListeners>.

Contoh simpul <sources>, <switches>, dan <sharedListeners> ditampilkan dalam kode berikut:

<configuration>
  <system.diagnostics>
    <sources>
      <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
          <add name="FileLog"/>
        </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"
      />
    </sharedListeners>
  </system.diagnostics>
</configuration>

Mengubah Pengaturan Log setelah Penyebaran

Saat Anda mengembangkan aplikasi, pengaturan konfigurasinya disimpan dalam file app.config, seperti yang ditunjukkan pada contoh di atas. Setelah menyebarkan aplikasi, Anda masih dapat mengonfigurasi log dengan mengedit file konfigurasi. Dalam aplikasi berbasis Windows, nama file ini adalah applicationName.exe.config, dan harus berada di folder yang sama dengan file yang dapat dieksekusi. Untuk aplikasi Web, ini adalah file Web.config yang terkait dengan proyek.

Saat aplikasi Anda menjalankan kode yang membuat instans kelas untuk pertama kalinya, aplikasi akan memeriksa file konfigurasi untuk informasi tentang objek tersebut. Untuk objek Log, ini terjadi saat pertama kali objek Log diakses. Sistem memeriksa file konfigurasi hanya sekali untuk objek tertentu—pertama kali aplikasi Anda membuat objek. Oleh karena itu, Anda mungkin perlu memulai ulang aplikasi agar perubahan diterapkan.

Dalam aplikasi yang disebarkan, Anda mengaktifkan kode pelacakan dengan mengonfigurasi ulang objek switch sebelum aplikasi Anda dimulai. Biasanya, ini melibatkan mengaktifkan dan menonaktifkan objek pengalihan atau dengan mengubah tingkat pelacakan, lalu memulai ulang aplikasi Anda.

Pertimbangan Keamanan

Pertimbangkan hal berikut saat menulis data ke log:

  • Hindari membocorkan informasi pengguna. Pastikan aplikasi Anda hanya menulis informasi yang disetujui ke log. Misalnya, mungkin dapat diterima bagi log aplikasi untuk berisi nama pengguna, tetapi bukan kata sandi pengguna.

  • Buat lokasi log aman. Log apa pun yang berisi informasi yang berpotensi sensitif harus disimpan di lokasi yang aman.

  • Hindari informasi yang menyesatkan. Secara umum, aplikasi Anda harus memvalidasi semua data yang dimasukkan oleh pengguna sebelum menggunakan data tersebut. Ini termasuk menulis data ke log aplikasi.

  • Hindari penolakan layanan. Jika aplikasi Anda menulis terlalu banyak informasi ke log, aplikasi dapat mengisi log atau menyulitkan menemukan informasi penting.

Lihat juga