Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

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.
Hata
Ş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.

Bunlar da hoşunuza gidebilir...

5 Cevaplar

  1. hakan dedi ki:

    ‘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

    • Gençay dedi ki:

      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.

  2. Cihan dedi ki:

    Tşk ederim güzel anlatmişsin

Gençay için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir