Saya telah membaca banyak tentang pelacakan dan penebangan, mencoba menemukan aturan emas untuk praktik terbaik dalam masalah ini, tetapi tidak ada. Orang mengatakan bahwa programmer yang baik menghasilkan penelusuran yang baik, tetapi begitulah dan harus berasal dari pengalaman.
Saya juga membaca pertanyaan serupa di sini dan melalui internet dan mereka tidak benar-benar sama dengan yang saya tanyakan atau tidak memiliki jawaban yang memuaskan, mungkin karena pertanyaannya kurang detail.
Jadi, orang mengatakan bahwa penelusuran harus semacam meniru pengalaman debug aplikasi jika Anda tidak dapat melampirkan debugger. Ini harus menyediakan konteks yang cukup sehingga Anda dapat melihat jalur mana yang diambil pada setiap titik kontrol dalam aplikasi.
Lebih dalam lagi, Anda bahkan dapat membedakan antara tracing dan logging event, dalam "event logging berbeda dari tracing karena ia menangkap status utama daripada aliran kontrol yang terperinci".
Sekarang, katakan saya ingin melakukan penelusuran dan pencatatan menggunakan hanya kelas .NET standar, yang ada di System.Diagnostics
namespace. Saya pikir bahwa kelas TraceSource lebih baik untuk pekerjaan daripada kelas Trace statis, karena saya ingin membedakan antara tingkat jejak dan menggunakan kelas TraceSource saya bisa mengirimkan parameter menginformasikan jenis acara, saat menggunakan kelas Trace saya harus menggunakan Trace.WriteLineIf
dan kemudian verifikasi hal-hal seperti SourceSwitch.TraceInformation
dan SourceSwitch.TraceErrors
, dan bahkan tidak memiliki properti seperti TraceVerbose
atau TraceStart
.
Dengan semua itu dalam pikiran, apakah Anda mempertimbangkan praktik yang baik untuk dilakukan sebagai berikut:
- Lacak peristiwa "Mulai" ketika memulai metode, yang harus mewakili operasi logis tunggal atau pipa, bersama dengan representasi string dari nilai parameter yang diteruskan ke metode.
- Lacak peristiwa "Informasi" saat memasukkan item ke dalam basis data.
- Lacak kejadian "Informasi" saat mengambil satu jalur atau lainnya dalam pernyataan if / else penting.
- Lacak "Kritis" atau "Kesalahan" di blok tangkap tergantung pada apakah itu kesalahan yang dapat dipulihkan.
- Lacak acara "Stop" saat menyelesaikan eksekusi metode.
Dan juga, mohon klarifikasi kapan sebaiknya melacak jenis acara Verbose dan Peringatan. Jika Anda memiliki contoh kode dengan jejak / pencatatan yang bagus dan bersedia untuk berbagi, itu akan sangat baik.
Catatan: Saya telah menemukan beberapa informasi yang baik di sini, tetapi masih belum apa yang saya cari: http://msdn.microsoft.com/en-us/magazine/ff714589.aspx