You are on page 1of 2

C# le Log Oluturma

Yaynlama Tarihi: 18.06.2011 Yazar : Fatih ALKAN

Yaptnz projelerinde oluan hata loglarnn tutmak hem son kullanc iin hem proje gelitirenlerin oluan sorunlara daha salam bir ekilde mdahale etmek iin ok nemli. Bence en nemli sebep ise son kullancnn hata yapmas ve sonrasnda topu size atmas program bozuk abicim ben doru yaptm deip topun azna yazlmcy atp sonra zeytin ya gibi patron karsnda suyun yzne kmasn nlemek iin al kardeim ben tm hatalar tutuyorum her ey burada kaytl diyebilmek bence ok nemli :) Hata Loglarn sql xml access gibi veritabanlarn kayt edebileceiniz gibi sunucuyu ve server yorumcak bir ekilde en basit olarak bir text dosyasna kayt edebilirsiniz bende size bu ekilde bir log tutma clasn anlatcam. Oluturduumuz HataLog Clasmz (HataLog.cs) public static String _hataOlusanSayfa = ""; public static String _hataMesaj = ""; public static String _hataIcerik = ""; public static void LogKaytEt() { HttpServerUtility hs = HttpContext.Current.Server; //Web isteklerini ilemek iin. String trh = DateTime.Now.ToShortDateString().Replace('/', '.'); String zmn = DateTime.Now.ToLongTimeString().Replace(':', '.'); //Burda tarih ve zaman olusturma amacm log isim olaraktarih vereceimden. StreamWriter str = newStreamWriter(hs.MapPath("../Logs/log (" + trh + "_" + zmn +").txt"),true); //Yazma lemini Balatyoruz. str.WriteLine("---- Hata OlusmaZamani------"); str.WriteLine(DateTime.Now.ToString());//Hatann tarihini yaz. str.WriteLine("---- Hata Mesaji------------"); str.WriteLine(_hataMesaj); //Hatann Mesaj str.WriteLine("---- Mesaj Icerigi----------"); str.WriteLine(_hataIcerik); //Hatann erii str.WriteLine(" "); str.Flush(); //Geerli yazc iin tm arabelleklerini temizler vearabellee alnan veriler temel alnan aka yazlacak hale getirmeyi salar.

str.Close(); //Ara bellekteki ak kapatr. } HataLog Class Kullanm (Default.aspx) hata olabilceini tahmin ettiiniz alanlar try catch bloglar ile kontrol altna alyoruz ve hata oldugu taktirde catch ksmnda oluturduumuz classimiz altryoruz try
{ StokKontrolEt(); } catch (Exceptionex) { LogOlusturma._hataOlusanSayfa =Request.CurrentExecutionFilePath;//Request.CurrentExecutionFilePathmethodu ile hata oluan sayfay alyoruz LogOlusturma._hataMesaj = ex.Message; //ex.Message ile oluturdugumuz try catch satrndaki oluanhatay yakalyoruz ve kontorlumuze atyoruz LogOlusturma._hataIcerik = ex.StackTrace; //yine ayni sekilde hata ierik mesajn alyoruz LogOlusturma.LogKaytEt(); // oluan hata logumuz kayt ediyoruz. return; }