Share via


Melacak dan Menginstrumentasikan Aplikasi

Pelacakan adalah cara Anda untuk memantau eksekusi aplikasi saat sedang berjalan. Anda dapat menambahkan instrumentasi pelacakan dan penelusuran kesalahan ke aplikasi .NET Framework saat mengembangkannya, dan Anda dapat menggunakan instrumentasi tersebut saat mengembangkan aplikasi dan setelah menyebarkannya. Anda dapat menggunakan System.Diagnostics.Tracekelas , System.Diagnostics.Debug, dan System.Diagnostics.TraceSource untuk merekam informasi tentang kesalahan dan eksekusi aplikasi di log, file teks, atau perangkat lain untuk analisis nanti.

Istilah instrumentasi mengacu pada kemampuan untuk memantau atau mengukur tingkat performa produk dan mendiagnosis kesalahan. Dalam pemrograman, ini berarti kemampuan aplikasi untuk menggabungkan:

  • Pelacakan kode - Menerima pesan informatif tentang eksekusi aplikasi pada durasi.

  • Penelusuran kesalahan - Melacak dan memperbaiki kesalahan pemrograman dalam aplikasi yang sedang dikembangkan. Untuk informasi selengkapnya, lihat Penelusuran Kesalahan.

  • Penghitung kinerja - Komponen yang memungkinkan Anda melacak performa aplikasi Anda. Untuk informasi selengkapnya, lihat Penghitung Kinerja.

  • Log peristiwa - Komponen yang memungkinkan Anda menerima dan melacak peristiwa utama dalam eksekusi aplikasi Anda. Untuk informasi selengkapnya, lihat EventLog kelas.

Melengkapi aplikasi Anda dengan menempatkan pernyataan pelacakan di lokasi strategis dalam kode Anda sangat berguna untuk aplikasi terdistribusi. Dengan menggunakan pernyataan pelacakan, Anda dapat melengkapi aplikasi tidak hanya untuk menampilkan informasi ketika terjadi kesalahan, tetapi juga untuk memantau seberapa baik performa aplikasi.

Kelas ini TraceSource menyediakan fitur pelacakan yang ditingkatkan dan dapat digunakan sebagai pengganti metode statis kelas pelacakan lama Trace dan Debug. Kelas Trace dan Debug yang akrab masih banyak digunakan, tetapi kelas TraceSource direkomendasikan untuk perintah pelacakan baru, seperti TraceEvent dan TraceData.

Kelas Trace dan Debug identik, kecuali bahwa prosedur dan fungsi kelas Trace dikompilasi secara default ke dalam build rilis, tetapi tidak dengan kelas Debug.

Kelas Trace dan Debug menyediakan sarana untuk memantau dan memeriksa performa aplikasi baik selama pengembangan atau setelah penyebaran. Misalnya, Anda dapat menggunakan kelas Trace untuk melacak jenis tindakan tertentu dalam aplikasi yang disebarkan saat terjadi (misalnya, pembuatan koneksi database baru), dan karenanya dapat memantau efisiensi aplikasi.

Pelacakan dan Penelusuran Kesalahan Kode

Selama pengembangan, Anda dapat menggunakan metode output kelas Debug untuk menampilkan pesan di jendela Output dari lingkungan pengembangan terintegrasi (IDE) Visual Studio. Misalnya:

Trace.WriteLine("Hello World!")  
Debug.WriteLine("Hello World!")  
System.Diagnostics.Trace.WriteLine("Hello World!");  
System.Diagnostics.Debug.WriteLine("Hello World!");  

Masing-masing contoh ini akan menampilkan "Halo Dunia!" di jendela Output saat aplikasi dijalankan di debugger.

Ini memungkinkan Anda untuk men-debug aplikasi Anda dan mengoptimalkan performanya berdasarkan perilakunya di lingkungan pengujian Anda. Anda dapat men-debug aplikasi di build debug dengan Debug atribut kondisional diaktifkan sehingga Anda menerima semua output penelusuran kesalahan. Ketika aplikasi Anda siap untuk rilis, Anda dapat mengkompilasi build rilis tanpa mengaktifkan Debug atribut kondisional, sehingga pengkompilasi tidak akan menyertakan kode penelusuran kesalahan Anda di executable akhir. Untuk informasi selengkapnya, lihat Cara: Mengkompilasi Secara Kondisional dengan Jejak dan Debug. Untuk informasi selengkapnya tentang konfigurasi build yang berbeda untuk aplikasi Anda, lihat Mengkompilasi dan Membangun.

Anda juga dapat melacak eksekusi kode dalam aplikasi yang diinstal, menggunakan metode kelas Trace. Dengan menempatkan Pelacakan Pengalihan dalam kode Anda, Anda dapat mengontrol apakah pelacakan terjadi dan seberapa luas itu. Dengan ini Anda dapat memantau status aplikasi Anda di lingkungan produksi. Hal ini sangat penting dalam aplikasi bisnis yang menggunakan beberapa komponen yang berjalan di beberapa komputer. Anda dapat mengontrol bagaimana sakelar digunakan setelah penyebaran melalui file konfigurasi. Untuk informasi selengkapnya, lihat Cara: Membuat, Menginisialisasi, dan Mengonfigurasi Pengalihan Pelacakan.

Ketika Anda mengembangkan aplikasi yang ingin Anda gunakan untuk menggunakan pelacakan, Anda biasanya menyertakan pesan pelacakan dan penelusuran kesalahan dalam kode aplikasi. Ketika Anda siap untuk menyebarkan aplikasi, Anda dapat mengkompilasi build rilis tanpa mengaktifkan atribut kondisional Debug. Namun, Anda dapat mengaktifkan atribut kondisional Pelacakan sehingga pengkompilasi menyertakan kode jejak Anda dalam executable. Untuk informasi selengkapnya, lihat Cara: Mengkompilasi Secara Kondisional dengan Jejak dan Debug.

Fase Pelacakan Kode

Ada tiga fase pelacakan kode:

  1. Instrumentasi — Anda menambahkan kode pelacakan ke aplikasi Anda.

  2. Pelacakan — kode pelacakan menulis informasi ke target yang ditentukan.

  3. Analisis — Anda mengevaluasi informasi pelacakan untuk mengidentifikasi dan memahami masalah dalam aplikasi.

Selama pengembangan, semua metode output debug dan pelacakan menulis informasi ke jendela Output di Visual Studio secara default. Dalam aplikasi yang disebarkan, metode menulis informasi pelacakan ke target yang Anda tentukan. Untuk informasi selengkapnya tentang menentukan target output untuk pelacakan atau penelusuran kesalahan, lihat Melacak Pendengar.

Berikut ini adalah tampilan keseluruhan dari langkah-langkah utama yang biasanya terlibat dalam menggunakan pelacakan untuk menganalisis dan memperbaiki potensi masalah dalam aplikasi yang disebarkan. Untuk informasi selengkapnya tentang cara melakukan langkah-langkah ini, lihat tautan yang sesuai.

Untuk menggunakan pelacakan dalam aplikasi
  1. Pertimbangkan output pelacakan mana yang ingin Anda terima di lokasi setelah Anda menyebarkan aplikasi.

  2. Buat sekumpulan sakelar. Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi Pelacakan Pengalihan.

  3. Tambahkan pernyataan pelacakan ke kode aplikasi.

  4. Tentukan di mana Anda ingin output pelacakan muncul dan tambahkan pendengar yang sesuai. Untuk informasi selengkapnya, lihat Membuat dan Menginisialisasi Pendengar Jejak.

  5. Uji dan debug aplikasi Anda dan kode pelacakan yang ada di dalamnya.

  6. Kompilasi aplikasi ke dalam kode yang dapat dieksekusi menggunakan salah satu prosedur berikut:

    • Gunakan menu Build bersama dengan halaman Debug dari kotak dialog Halaman Properti di Penjelajah Solusi. Gunakan ini saat mengkompilasi di Visual Studio.

      - atau -

    • Gunakan arahan kompilator Pelacakan dan Debug untuk metode kompilasi baris perintah. Untuk informasi selengkapnya, lihat Cara: Mengkompilasi Secara Kondisional dengan Jejak dan Debug. Gunakan ini saat mengkompilasi dari baris perintah.

  7. Jika masalah terjadi selama durasi, aktifkan sakelar pelacakan yang sesuai. Untuk informasi selengkapnya, lihat Mengonfigurasi Pengalihan Pelacakan.

    Kode pelacakan menulis pesan pelacakan ke target tertentu, misalnya, layar, file teks, atau log peristiwa. Jenis pendengar yang Anda sertakan dalam koleksi Trace.Listeners menentukan target.

  8. Analisis pesan pelacakan untuk mengidentifikasi dan memahami masalah dalam aplikasi.

Lacak Instrumentasi dan Aplikasi Terdistribusi

Ketika Anda membuat aplikasi terdistribusi, Anda mungkin merasa sulit untuk menguji aplikasi dengan cara yang akan digunakan. Beberapa tim pengembangan memiliki kemampuan untuk menguji semua kemungkinan kombinasi sistem operasi atau browser Web (termasuk semua opsi bahasa yang dilokalkan), atau untuk mensimulasikan jumlah pengguna tinggi yang akan mengakses aplikasi secara bersamaan. Dalam keadaan ini, Anda tidak dapat menguji bagaimana aplikasi terdistribusi akan merespons volume tinggi, pengaturan yang berbeda, dan perilaku pengguna akhir yang unik. Selain itu, banyak bagian dari aplikasi terdistribusi tidak memiliki antarmuka pengguna yang dapat Anda gunakan untuk berinteraksi secara langsung atau melihat aktivitas bagian-bagian tersebut.

Namun, Anda dapat mengimbanginya dengan mengaktifkan aplikasi terdistribusi untuk menjelaskan peristiwa tertentu yang menarik bagi administrator sistem, terutama hal-hal yang salah, dengan melengkapi aplikasi — yaitu, dengan menempatkan pernyataan pelacakan di lokasi strategis dalam kode Anda. Kemudian jika sesuatu yang tidak terduga terjadi pada durasi (misalnya, waktu respons yang terlalu lambat), Anda dapat menentukan kemungkinan penyebabnya.

Dengan pernyataan jejak, Anda dapat menghindari tugas sulit memeriksa kode sumber asli, memodifikasinya, mengolah ulang, dan mencoba menghasilkan kesalahan run-time dalam lingkungan debugging. Ingatlah bahwa Anda dapat melengkapi aplikasi tidak hanya untuk menampilkan kesalahan, tetapi juga untuk memantau performa.

Penempatan Pernyataan Jejak Strategis

Anda harus melakukan perawatan khusus saat menempatkan pernyataan pelacakan untuk digunakan selama durasi. Anda harus mempertimbangkan informasi pelacakan apa yang kemungkinan diperlukan dalam aplikasi yang disebarkan, sehingga semua skenario pelacakan yang mungkin tercakup secara memadai. Karena aplikasi yang menggunakan pelacakan sangat bervariasi, namun, tidak ada pedoman umum untuk penempatan pelacakan strategis. Untuk informasi tentang menempatkan pernyataan jejak, lihat Cara: Menambahkan Pernyataan Jejak ke Kode Aplikasi.

Output dari Pelacakan

Output jejak dikumpulkan oleh objek yang disebut pendengar. Pendengar adalah objek yang menerima output jejak dan menulisnya ke perangkat output (biasanya file jendela, log, atau teks). Ketika pendengar jejak dibuat, biasanya ditambahkan ke koleksi Trace.Listeners, memungkinkan pendengar untuk menerima semua output jejak.

Informasi pelacakan selalu ditulis setidaknya ke target output default Trace, DefaultTraceListener. Jika karena alasan tertentu Anda telah menghapus DefaultTraceListener tanpa menambahkan pendengar lain ke koleksi Listeners, Anda tidak akan menerima pesan pelacakan apa pun. Untuk informasi selengkapnya, lihat Lacak Pendengar .

Enam anggota Debug dan metode Trace yang menulis informasi pelacakan tercantum dalam tabel berikut.

Metode Hasil
Assert Teks yang ditentukan; atau, jika tidak ada yang ditentukan, Tumpukan Panggilan. Output ditulis hanya jika kondisi yang ditentukan sebagai argumen dalam pernyataan Assert adalah salah.
Fail Teks yang ditentukan; atau, jika tidak ada yang ditentukan, Tumpukan Panggilan.
Write Teks yang ditentukan.
WriteIf Teks yang ditentukan, jika kondisi yang ditentukan sebagai argumen dalam pernyataan WriteIf terpenuhi.
WriteLine Teks yang ditentukan dan pengembalian pengangkutan.
WriteLineIf Teks yang ditentukan dan pengembalian pengangkutan, jika kondisi ditentukan sebagai argumen dalam pernyataan WriteLineIf terpenuhi.

Semua pendengar dalam koleksi Listeners menerima pesan yang dijelaskan dalam tabel di atas, tetapi tindakan yang diambil dapat bervariasi tergantung pada jenis pendengar apa yang menerima pesan. Misalnya, DefaultTraceListener menampilkan kotak dialog pernyataan saat menerima pemberitahuan Fail atau Assert yang gagal, tetapi TextWriterTraceListener hanya menulis output ke alirannya.

Anda dapat menghasilkan hasil khusus dengan mengimplementasikan pendengar Anda sendiri. Pendengar pelacakan kustom mungkin, misalnya, menampilkan pesan ke kotak pesan, atau menyambungkan ke database untuk menambahkan pesan ke tabel. Semua pendengar kustom harus mendukung enam metode yang disebutkan di atas. Untuk mendapatkan informasi selengkapnya tentang membuat pendengar yang ditentukan pengembang, lihat TraceListener di referensi .NET Framework.

Metode Write dan WriteLine selalu menulis teks yang Anda tentukan. Assert, WriteIf, dan WriteLineIf memerlukan argumen Boolean yang mengontrol apakah mereka menulis teks yang ditentukan atau tidak; mereka menulis teks yang ditentukan hanya jika ekspresinya benar (untuk WriteIf dan WriteLineIf), atau salah (untuk Assert). Metode Fail ini selalu menulis teks yang ditentukan. Untuk informasi selengkapnya, lihat Cara Menambahkan Pernyataan Jejak ke Kode Aplikasi.

Masalah keamanan

Jika Anda tidak menonaktifkan pelacakan dan penelusuran kesalahan sebelum menyebarkan aplikasi ASP.NET, aplikasi Anda dapat mengungkapkan informasi tentang dirinya sendiri yang dapat dieksploitasi oleh program berbahaya. Untuk informasi selengkapnya, lihat Cara: Mengkompilasi Secara Kondisional dengan Jejak dan Debug, Mengkompilasi dan Membangun, dan Cara: Membuat, Menginisialisasi, dan Mengonfigurasi Sakelar Pelacakan. Penelusuran kesalahan juga dapat dikonfigurasi melalui Layanan Informasi Internet (IIS).

Lihat juga