C# ile windows olay görüntüleyicisine log atma - Murat ÖNER
Yazar: Murat ÖNER · Yayımlanmış 2 Mayıs 2016 · Güncellendi 3 Temmuz 2016
Log atmak bir geliştirici için büyük öneme sahiptir gerekli gördüğünüz yerlere loglama için gerekli işlemi yaptıktan sonra projeyi canlıya attığınızda gözünüzden ister istemez kaçan durumlardan dolayı sorunlar çıkması olasıdır bu sorunu geliştirme esnasındaki gibi debug etme şansınız pek olmadığından loglardan yola çıkarak çözüme varabilirsiniz yada yapılan işlemlere dair elinizde bir kaynak olmuş olur. Windows olay görüntüleyicisine “Denetim Masası – Yönetimsel Araçlar – Olay Görüntüleyicisi” yolundan ulaşabilirsiniz. Olay görüntüleyicine gözattığınızda 3 farklı log göreceksiniz Bilgi, Uyarı ve Hata türünde 3 farklı log türü bulunmaktadır bizde C# tarafında loglarımızı bilgi, uyarı ve hata olarak loglayabileceğiz.
Windows olay görüntüleyicine log atmak için System.Diagnostics namespace’i altında yer alan EventLog adlı sınıfı kullanacağız. Şimdi muratoner.net adında bir kaynak oluşturacağız ve altınada bir log atacağız böylelikle log atma işlemine giriş yapmış oluruz.
Öncelikle namespace’i ekleyelim.
CreateEventSource ve DeleteEventSource metodlarını kullandığımızda eğer alttaki hata ile karşılaşırsanız o zaman yapmanız gereken projenizin çıktısı olan exe’yi yönetici olarak çalıştırmak yada projeyi visual studio’da açarken visual studio’yu yönetici olarak çalıştırın böylelikle bu hata ile karşılaşmazsınız.
Additional information: Requested registry access is not allowed.
Şimdi olay görüntüleyicisinde muratoner.net adında bir kaynak oluşturalım ve bu kaynak altına birer tane bilgi, uyarı ve hata türünde log atalım. Ama onun öncesinde muratoner.net adında bir kaynak oluşturalım. Kaynak oluşturmak için EventLog sınıf altındaki CreateEventSource metodunu kullanacağız ama bu metodu kullanmadan önce eğer aynı kaynak daha önce oluşturulmuş ise hata almamak için SourceExists metodu ile kontrol edeceğiz.
Kaynak oluşturma sonrasında windows olay görüntüleyicinde sol menüde “Uygulama ve Hizmet Günlükleri” menüsü altında girmiş olduğunuz kaynak adı yok ise windows olay görüntüleyicisi kapatıp tekrar açın.
cbOlayTuru.SelectedIndex = 0;
private void btnOlustur_Click(object sender, EventArgs e)
if (!string.IsNullOrEmpty(txtOlayAdi.Text) && !string.IsNullOrEmpty(txtOlayKaynakAdi.Text))
//Eğer muratoner.net adında bir kaynak yok ise oluşturulacak.
EventLogEntryType logType = EventLogEntryType.Information;
logType = EventLogEntryType.Warning;
logType = EventLogEntryType.Error;
EventLog.WriteEntry(txtOlayKaynakAdi.Text, txtOlayAdi.Text, logType);
MessageBox.Show("Log adı ve kaynağı boş geçemezsiniz.");
Şimdi masaüstü uygulamamızın ekran görüntüsüne gözatalım.
Kaynak ve log oluşturduktan sonra “Olay Görüntüleyicisi” görüntüsüne gözatalım.
muratoner.net adındaki kaynağın oluşturulduğunu buradan görüyoruz.
Information türündeki logumuz burada listeleniyor.
Log mesajımızın detayıda burada yer alıyor.
Bu projenin son haline ve diğer tüm projelerime GitHub hesabımdaki “csharp” adlı repository’imden ulaşabilirsiniz GitHub linkim aşağıdadır.
C# GitHub Repository: https://github.com/muratoner/csharp/tree/master/MHG.Windows.Event.Viewer
Etiketler: C#c# windows formcsharp windows formwindows form
Sonraki yazı Sql Server NOCOUNT Komutu Kullanımı
Önceki yazı Xamarin Android Notlarım
Oyun, script v.b. birçok yazılımın kullanıcıya sunulduğu ortamda yazılımın yanında RC yazısını görüp nedir diye merak etmiş olmalısınız ki bu konuyu okuyorsunuz, neyse hemen merakınızı dindireyim yazılımların sürüm numarasının veya adının yanında gördüğünüz RC kısaltması release candidate cümlesinden geliyor, kısaca RC açılımı release candidate ve bu cümlenin Türkçe anlamı üzerinde değişikler yapılabilir ama kullanılmaya değer bir nevi kullanışlı sürüm niteliğini taşır, daha net açıklamak gerekirse RC: beta ve final arasındaki versiyondur.
C# String Diziyi String'e Çevirme Nasıl Yapılır? - Murat ÖNER der ki:
[…] Sql Server C# türü karşılıkları […]
[…] C# Switch Case Yapısı Kullanımı […]
indirbak der ki:
Rica ederim çözüm için işe yaradıysa çok sevindim.
Taha Sözgen der ki:
Teşekkür ederim. Önemli bir problemin çözümüne ön ayak oldunuz.