C# EventLog Sınıfının Kullanımı
Bu yazımda C#’ta EventLog sınıfının kullanımını göreceğiz.Bazen programın işleyişini veya hatalarını bilgi olarak loglamak isteriz.Bu gibi durumlar yazılımcı için önem arz etmektedir.Hataların sebeplerini logladığı veriler sayesinde daha rahat anlayabilir.Programın işleyiş biçimini loglardan rahatlıkla takip edebilir.İstediğimiz şekilde loglama yapabiliriz.İsterseniz veritabanına anlık durumları ve hataları loglayabilirsiniz.Bir çok yolu olduğu halde bu yazımda EventLog sınıfıyla loglamayı göstereceğim.
Bu sınıf sayesinde Windows işletim sisteminin içindeki programdan faydalanmış olacağız.
Denetim Masası – Yönetimsel Araçlar – Olay Görüntüleyicisi ile, Windows işletim sisteminin uygulama bazlı loglarına erişilebilir.Biz de uygulamamızda oluşacak hataları veya bilgi loglarını burada saklayacağız.
Bu sınıfı kullanabilmek için aşağıdaki kütüphaneyi projenize eklemeniz gerekiyor.
using System.Diagnostics;
İlk olarak logun kaynağı oluşturulmalıdır.(Olay Görüntüleyicinsindeki kategori içindeki Uygulama ve Hizmet Günlükleri sekmesinde görünecek isim)
if (!EventLog.SourceExists("Gençay"))
{
EventLog.CreateEventSource("Gençay","Gençay");
}
Yukardaki kod bloğunu tanımlayalım.
EventLog.SourceExists(“Gençay”) : “Gençay” isminde kaynak varsa True, yoksa False gönderir.
EventLog.CreateEventSource(“Gençay”,”Gençay”) : “Gençay” isminde ki kaynağı, “Gençay” kategorisinde oluştur.
Sonuç olarak benim bilgisayarımda “Gençay” diye bir kayıt olmadığından !EventLog.SourceExists(“Gençay”) true dönecektir ve if scope’u çalışıp “Gençay” adında bir kaynak oluşturulacaktır.
if (!EventLog.SourceExists("Gençay"))
{
EventLog.CreateEventSource("Gençay","Gençay");
}
Şimdi ise oluşturduğum kaynağa loglama yapma zamanı..
EventLog log = new EventLog();
//EventLog nesnesi oluşturuyoruz.
log.Source = "Gençay";
//Loglama yapacağımız kaynağı gösteriyoruz.Yukarda oluşturduğum kaynağı yazdım ben.
log.WriteEntry("Hata Var", EventLogEntryType.Error);
Ve WriteEntry metoduyla Hata mesajı tipinden logumuzu kayıt ediyoruz.
Yukarda ki kodları her çalıştırdığınız da hata mesajı yazılacaktır.

Şu ana kadar EventLog sınıfın da loglama nasıl yapıldığını öğrendik.Ancak bu şekilde loglama olmaz.Ben bazı durumları bilgi tipinde,hataları da hata tipinde loglama yapmak istiyorum.Yani program hata verdiğinde loglaması gerekiyor.Buna benzer bir uygulama 2. sayfada görebilirsiniz.

‘System.Security.SecurityException’ türünde bir yakalanamayan özel durum, System.dll öğesinde oluştu
Ek bilgi: Kaynak bulunamadı; ancak olay günlüklerinin bazılarında veya hiçbirinde arama yapılamadı. Erişilemeyen günlükler: Security.
Hatasını nasıl düzeltebilirim. gerekli log dosyasını oluşturdum ama böyle bir hata alıyorum
‘System.Security.SecurityException‘
Bu hatanın çözümü;
Projeyi çalıştırmadan önce Visual Studio programını Yönetici olarak çalıştırmanız gerekmektedir.
Tşk ederim güzel anlatmişsin
Eee kıymetimizi bilen yok 😛
Latifesi bir yana çok teşekkür ederim Cihan kardeşim.
rica ederim kıymetli gencay kardeşim 🙂