Cara Melakukan Log in C # Dengan Log4net

Ketika Anda menulis kode komputer di C #, itu ide bagus untuk memasukkan kode logging. Dengan begitu, ketika terjadi kesalahan, Anda tahu harus mulai dari mana. Dunia Jawa telah melakukan ini selama bertahun-tahun. Anda dapat menggunakan log4net untuk tujuan ini. Ini adalah bagian dari Apache log4j 2, kerangka kerja logging sumber terbuka yang populer.

Ini bukan satu-satunya kerangka kerja .NET logging; ada banyak. Namun demikian Apache nama tepercaya dan kerangka kerja Java logging asli telah ada selama lebih dari 15 tahun.

Mengapa Menggunakan Log4net Logging Framework?

Ketika aplikasi atau server mogok, Anda bertanya-tanya mengapa. Apakah itu kegagalan perangkat keras, malware, mungkin serangan Denial of Service, atau beberapa kombinasi tombol aneh yang berhasil melewati semua pemeriksaan kode Anda? Anda tidak tahu.

Anda perlu mencari tahu mengapa crash terjadi sehingga dapat diperbaiki. Dengan pencatatan yang diaktifkan, Anda mungkin dapat melihat mengapa hal itu terjadi.

Mulai

Unduh file log4net dari situs web Apache log4net. Verifikasi integritas file yang diunduh menggunakan tanda tangan PGP atau checksum MD5. Checksum tidak sekuat indikator tanda tangan PGP.

instagram viewer

Menggunakan Log4net

Log4net mendukung tujuh level logging dari none ke all dalam meningkatkan prioritas. Ini adalah:

  1. MATI
  2. FATAL
  3. KESALAHAN
  4. MEMPERINGATKAN
  5. INFO
  6. DEBUG
  7. SEMUA

Level yang lebih tinggi termasuk semua yang lebih rendah. Saat debugging, gunakan DEBUG menunjukkan semua, tetapi pada produksi, Anda mungkin hanya tertarik pada FATAL. Pilihan ini dapat dibuat pada tingkat komponen secara terprogram atau dalam file XML Config.

Penebang dan Appender

Untuk fleksibilitas, log4net menggunakan logger, appenders, dan layout. Logger adalah objek yang mengontrol logging dan merupakan implementasi dari antarmuka ILog, yang menetapkan lima metode boolean: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled, dan IsFatalEnabled. Itu juga menentukan lima metode — Debug, Info, Peringatkan, Kesalahan dan Fatal — bersama dengan kelebihan dan lima versi string yang diformat. Anda dapat melihat antarmuka ILog lengkap di manual online log4net.

Penebang ditugaskan salah satu level tetapi tidak SEMUA atau MATI, hanya lima lainnya.

Appenders mengontrol ke mana penebangan dilakukan. Itu bisa ke dalam database, ke buffer di dalam memori, ke konsol, ke host jarak jauh, ke file teks dengan rolling log, Windows Event Log, atau bahkan ke email melalui SMTP. Ada 22 appender di semuanya, dan mereka dapat digabungkan sehingga Anda memiliki banyak pilihan. Appenders ditambahkan (karenanya nama) ke logger.

Appenders memfilter acara dengan mencocokkan substring, level acara, rentang level dan mulai dari nama logger.

Tata letak

Akhirnya, ada tujuh tata letak yang dapat dikaitkan dengan Appender. Ini mengontrol bagaimana pesan acara dicatat dan dapat menyertakan teks pengecualian, tata letak stempel waktu, dan Elemen XML.

Konfigurasi dengan XML

Meskipun konfigurasi dapat dilakukan secara terprogram, itu juga dapat dilakukan dengan file XML Config. Mengapa Anda lebih memilih file konfigurasi daripada perubahan kode? Sederhana, jauh lebih mudah untuk memiliki orang yang mendukung membuat perubahan ke file konfigurasi daripada harus mendapatkan programmer untuk mengubah kode, menguji dan memindahkan kembali versi baru. Jadi file konfigurasi adalah cara untuk pergi. Jalur paling sederhana yang mungkin adalah dengan menambahkan App.config proyek Anda, seperti yang ditunjukkan pada contoh di bawah ini:

1.0utf-8





















Dokumentasi online log4net menjelaskan semua bidang file konfigurasi. Setelah mengatur App.config, tambahkan menggunakan log4net dan baris ini:

[perakitan: log4net. Konfigurasi XmlConfigurator (Tonton = true)]

Ditambah logger yang sebenarnya harus diambil dengan panggilan ke LogManager. GetLogger (...). GetLogger biasanya dipanggil dengan typeof (kelas) yang digunakan, tetapi pemanggilan fungsi ini juga menjabarkan bahwa:

Sistem. Refleksi. MethodBase. GetCurrentMethod (). DeclaringType

Contoh ini menunjukkan keduanya dengan satu komentar, sehingga Anda dapat memilih.

menggunakan log4net;
[perakitan: log4net. Konfigurasi XmlConfigurator (Tonton = true)]
namespace gvmake
{
Program kelas
{
private static read only ILog log = LogManager. GetLogger (Sistem. Refleksi. MethodBase. GetCurrentMethod
() .DeclaringType);
// private static readonly ILog log = LogManager. GetLogger (typeof (Program));
static void Main (string [] args)
{
catatan. Debug ("Aplikasi Mulai");
}
}
}

instagram story viewer