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 dengan properti Switch log propertiTraceSource. Secara default, hanya pesan dengan "Informasi" keparahan dan yang lebih tinggi yang diteruskan ke pendengar jejak, yang ditentukan dalam koleksi log TraceListener. Kemudian, setiap pendengar membandingkan tingkat keparahan pesan dengan properti Switch pendengar. Jika tingkat keparahan pesan cukup tinggi, pendengar akan menuliskan pesan.

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

Diagram that shows My log call.

Anda dapat mengubah perilaku log dan pendengar jejak dengan mengubah file konfigurasi aplikasi. Diagram berikut menunjukkan kesesuian antara bagian log dengan file konfigurasinya.

Diagram that shows My log configuration.

Bagaimana Pesan Dicatat

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

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 output Tampilkan dari kotak .

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

BasePath\CompanyName\ProductName\ProductVersion

Nilai umum untuk BasePath adalah sebagai berikut.

C:\Documents and Pengaturan\username\Application Data

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, formulir untuk nama file log adalah AssemblyNameiteration.log-iterasi.log di manaiteration 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: Memfilter Output My.Application.Log.

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

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

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

  • Pendengar log didefinisikan dalam simpul <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 tersebut. 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 tersebut memeriksa file konfigurasi untuk informasi tentang objek tersebut. Untuk objek Log, ini terjadi saat pertama kali objek Log diakses. Sistem ini memeriksa file konfigurasi hanya sekali untuk objek tertentu — pertama kali aplikasi Anda membuat objek tersebut. Oleh karena itu, Anda mungkin perlu memulai ulang aplikasi agar perubahan diterapkan.

Dalam aplikasi yang disebarkan, Anda mengaktifkan kode pelacakan dengan mengonfigurasi ulang objek pengalihan sebelum aplikasi Anda memulai. Biasanya ini meliputi mengaktifkan dan menonaktifkan objek atau dengan mengubah tingkat pelacakan, lalu menghidupkan 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. Termasuk menulis data ke log aplikasi.

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

Lihat juga