Beberapa orang menggunakan ELMAH sebagai pengganti log4net. Apa yang membuatnya lebih baik?
Saya mengetahui tentang ELMAH dalam jawaban atas pertanyaan Stack Overflow Bagaimana cara saya masuk ke C #?
Beberapa orang menggunakan ELMAH sebagai pengganti log4net. Apa yang membuatnya lebih baik?
Saya mengetahui tentang ELMAH dalam jawaban atas pertanyaan Stack Overflow Bagaimana cara saya masuk ke C #?
Jawaban:
ELMAH berfungsi untuk melacak kesalahan dan pengecualian untuk aplikasi web Anda dan memungkinkan Anda untuk dengan mudah mencatat atau melihat pengecualian tersebut melalui berbagai mekanisme (SQL, RSS, Twitter, file, email, dll.). Jika Anda tidak memiliki penanganan pengecualian bawaan, ELMAH kemungkinan besar akan memberi Anda apa yang Anda cari dalam hal penanganan pengecualian dalam lingkungan aplikasi web.
Log4net juga dapat digunakan untuk pencatatan log pengecualian, namun Anda mungkin perlu menggulung penangan Anda sendiri untuk dicolokkan ke aplikasi web Anda. Log4net akan bersinar di atas ELMAH jika Anda perlu melakukan jenis pencatatan informasi lain karena log4net adalah kerangka kerja pencatatan tujuan umum. Log4net juga dapat digunakan di hampir semua aplikasi .NET.
Log4Net adalah kerangka kerja pencatatan tujuan umum dengan API yang dimaksudkan untuk digunakan dalam aplikasi Anda (web, konsol, dll, dll.).
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
ELMAH adalah plugin IIS yang tidak mengganggu khusus untuk pengecualian logging di aplikasi web. Anda tidak akan melihat referensi ke ELMAH dalam aplikasi Anda, karena tidak memiliki API yang Anda gunakan untuk berinteraksi. Ini menggunakan modul dan penangan titik ekstensi IIS untuk mengunci perilaku. Selain itu, ia memiliki web front-end untuk melihat kesalahan yang terjadi dalam aplikasi web Anda. Log4Net tidak memiliki front-end, hanya berbagai log sink (Appenders) yang dapat mengirim pesan log Anda ke hal-hal seperti file log, server syslog, database, dll.
Perbedaan utamanya adalah bahwa ELMAH mencatat pengecualian aplikasi yang tidak tertangani; log4net mencatat apa pun yang Anda perintahkan untuk dicatat. Anda dapat mengkonfigurasi log4net untuk mencatat pengecualian yang tidak tertangani, tetapi ELMAH menyimpan banyak informasi berguna di luar kotak.
ELMAH bekerja dengan membuat modul HTTP yang menghubungkan ke kejadian kesalahan dan kemudian melakukan logging. Ini dengan mudah dapat digagalkan dan dipatahkan oleh desain yang buruk. Log4Net mungkin memerlukan pekerjaan tambahan dimuka tetapi jika Anda menggunakan kerangka kerja AOP dan menerapkannya di seluruh kelas Anda atau bahkan perakitan, Anda dapat mencapai pencatatan pengecualian yang jauh lebih baik dengan sedikit kode dan upaya.
ELMAH hanya bekerja jika ia memiliki akses ke HttpContext yang sulit dicapai dalam layanan WCF. Jadi, Anda akhirnya akan menggunakan logger lain di WCF. Mengapa tidak menggunakan satu solusi yang lebih universal.
ELMAH secara khusus digunakan untuk aplikasi web sedangkan log4net digunakan pada aplikasi web dan Windows. ELMAH memiliki lebih banyak keunggulan dibandingkan log4net dalam aplikasi web.
ELMAH sangat kuat, tetapi juga sangat spesifik dalam fungsinya. Ia melakukan banyak pekerjaan untuk Anda, sementara saya yakin Log4Net mengharuskan Anda untuk melakukan penanganan kesalahan dan logging.