pengantar
Jika kesalahan terjadi pada situs web atau sistem, tentu saja berguna untuk mencatatnya, dan menunjukkan pesan sopan kepada pengguna dengan kode referensi untuk kesalahan tersebut.
Dan jika Anda memiliki banyak sistem, Anda tidak ingin informasi ini tersebar - ada baiknya memiliki satu tempat terpusat untuk itu.
Pada level paling sederhana, yang diperlukan hanyalah penambahan id dan dump serial dari detail kesalahan. (Dan mungkin "tempat terpusat" menjadi kotak masuk email.)
Di ujung lain dari spektrum mungkin adalah database yang sepenuhnya dinormalisasi yang juga memungkinkan Anda untuk menekan tombol dan melihat grafik kesalahan per hari, atau mengidentifikasi apa jenis kesalahan yang paling umum pada sistem X adalah, apakah server A memiliki lebih banyak database kesalahan koneksi dari server B, dan sebagainya.
Yang saya maksudkan di sini adalah mencatat kesalahan / pengecualian tingkat kode oleh sistem jarak jauh - bukan pelacakan masalah "berbasis manusia", seperti yang dilakukan dengan Jira, Trac, dll.
Pertanyaan
Saya mencari pemikiran dari pengembang yang telah menggunakan sistem jenis ini, khususnya berkaitan dengan:
- Apa fitur penting yang tidak dapat Anda lakukan tanpanya?
- Apa yang baik untuk memiliki fitur yang benar-benar menghemat waktu Anda?
- Fitur apa yang tampaknya ide yang bagus, tetapi sebenarnya tidak terlalu berguna?
Misalnya, saya akan mengatakan fungsi "tampilkan duplikat" yang mengidentifikasi beberapa kesalahan (tanpa khawatir tentang detail 'tidak penting' yang mungkin berbeda) sangat penting.
Tombol untuk "membuat masalah di [Jira / etc] untuk kesalahan ini" terdengar seperti penghemat waktu yang baik.
Hanya untuk mengulangi, apa yang saya kejar adalah pengalaman praktis dari orang-orang yang telah menggunakan sistem seperti itu, lebih disukai didukung dengan mengapa fitur itu mengagumkan / mengerikan.
(Lagi pula, jika Anda akan berteori, paling tidak tandai jawaban Anda seperti itu.)
sumber
Jawaban:
Saya telah dalam proyek di mana dengan kesalahan klien yang dicatat menggunakan perpustakaan Microsoft Enterprise . Semua pengecualian tempat kirim ke kotak surat kami. Dalam subjek surat kami menambahkan kode hash kesalahan serial untuk menghindari pesan yang digandakan. Seseorang tentu saja dapat menyimpan pesan berseri dalam database dan sebagainya.
Saya sarankan Anda untuk memeriksa perpustakaan Microsoft Enterprise dan Log4Net .
Beberapa Fitur Log4Net
sumber
Dalam kasus aplikasi basis data, beberapa jenis ID (seperti
<TABLE>:<PrimaryKeyID>
) yang memungkinkan Anda untuk melacak catatan dalam basis data yang terkait dengan ruang lingkup di mana pengecualian ditangkap.Saya sudah melakukannya dengan Oracle dan PL / SQL, merekam ID dalam tabel database dalam aplikasi, dari handler pengecualian.
sumber
Banyak dari apa yang Anda gambarkan (mis. Bagian khusus logging) diimplementasikan di perpustakaan perusahaan seperti yang dicatat Amir Rezaei. Segala sesuatu yang lain tampaknya lebih merupakan bagian analitik (mis. Apa yang harus dilakukan dengan log sesudahnya).
Dalam kasus saya, saya membuat beberapa aplikasi kecil dan skrip sql yang membuat beberapa hal lebih mudah. Inilah beberapa hal yang sangat saya sukai:
sumber
Terkadang, informasi log terlalu tebal untuk disimpan pada disk. Satu pendekatan yang saya lihat adalah menulis entri logging Anda ke firehose (dalam, katakanlah, perl) sesuatu seperti ini:
kemudian seorang analis dapat memahami apa yang ingin dia lihat.
sumber
Inilah beberapa hal yang saya pelajari dari pemantauan kesalahan dalam aplikasi kami:
Saya mendapatkan hasil yang bagus untuk log4net karena membuatnya sangat mudah untuk masuk ke banyak tempat dan membuat perubahan pada konfigurasi logging juga mudah.
sumber
elmah adalah sistem pencatatan kesalahan sumber terbuka untuk aplikasi ASP.NET dan dapat ditambahkan ke sistem yang ada (menggunakan NuGet http://nuget.codeplex.com/ ) dengan cepat dan mudah. Ini mendukung berbagai fungsi backend dan notifikasi.
Saya tidak tahu siapa pun yang menambahkannya ke aplikasi desktop karena berjalan sebagai situs web, tetapi tidak ada yang mencegah Anda menjalankannya sebagai layanan dan memposting pengecualian Anda ke sana melalui web.
http://code.google.com/p/elmah/
sumber