Webmaster Forumu | web Teknik |  

Go Back   Webmaster Forumu | web Teknik | > Server Side Programlama > ASP > ASP.NET

Cevapla
 
LinkBack Seçenekler Stil
Alt 31-07-2008, 11:24   #1
Senior Member
 
HayaL - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: 29-07-2008
Mesajlar: 1.000
Standart ASP.NET trace işlemi

Yazılım geliştiricilerin uygulama geliştirirken yazmış oldukları kodlara hangi değerlerin geldiği, nerede hangi değerin hangi değişkene atandığı, sayfanın hangi değerleri post ettiği ve hangi değerleri aldığı gibi bilgilere ihtiyaç duyması üzerine bu değerleri inceleyebilmek için mekanizmalar oluşturuldu, buna trace8 diyoruz. ASP teknolojisi ile trace yapabilmek için kullanılan method ise ekrana response.write ile değerleri yazdırmaktı. Bu birçok yazılım geliştirici tarafından kullanıldı ve halen birçok uygulamada kullanılıyor.

ASP.NET trace işlemini gerçekten mükemmel kılıyor, çünkü ASP'de yaptığımız response.write yöntemi yerine çok daha profesyonel şekilde bu işlemi gerçekleştirebiliyoruz. Peki öncelikle ASP'deki yöntemin sorunu neydi, neden bunu değiştirme gereği daha doğrusu geliştirme gereği hissedildi? Çünkü yapmış olduğunuz kod eklentileri, uygulama canlı halde çalışırken de çalışıyordu, o zaman canlıda çalışırken bu kodları ortadan kaldırmak zorunda kalıyordunuz. Peki ya canlı sistem üzerinde bir şeyi trace etmek isterseniz? İşte bu zaman canlı sisteme bakan bir test sistemi kurmak zorunda kalıyordunuz ki, bu en başta development mantığına aykırı bir yaklaşım.

İsterseniz hemen sayfa içerisinde nasıl kullanılacağını görelim, ardından üzerinde tartışma devam edelim:

<%@ Page Language="VB" Trace="true" %>

ASP.NET sayfamızın ilk satırı olarak yukarıdaki kodları yazdığımızda artık o sayfa için trace işlemini açmış oluyoruz. Böylelikle anlıyoruz ki, default olarak gelen değer, yani biz hiçbir şey belirtmezsek gelen değer "false". Artık sayfamızda trace özelliğini kullanabiliyoruz peki bunun sıralama gibi methodları var mı, evet var. Hemen örneğe bakalım;

<%@ Page Language="VB" Trace="true"
TraceMode="SortByCategory" %>

Görüldüğü gibi TraceMode değerine farklı methodlar bağlayabiliyoruz. Bunlardan birincisi örnekte gördüğünüz "SortByCategory", yaptığı ise kategori bazında sıralı getirmek trace bilgisini. Diğer method ise "SortByTime", bu method ile de zaman sıralı olarak trace bilgisi görüntülenebiliyor.

Peki trace mesajlarını nasıl görebiliriz? Response.write'dan bahsetmiştik yazımızın başında, işte buna çok yakın bir yöntem ile trace bilgisini ekrana getirmek çok kolay: "Trace.Write". Bu yöntem ile ekrana yazdırdığımız değerler normal yazı tipinde olacaktır. İkinci yöntem ise "Trace.Warn" kullanmak. Böylelikle ekrana bilgileri kırmızı olarak yazıdırmak mümkün, adından da anlaşıldığı gibi uyarma amaçlı bilgilendirme için kullanılıyor.

Trace.Write ("kategori", "mesaj")
Trace.Warn ("kategori", "mesaj")

Bazı sayfalarda sadece trace seçeneği açık ise şunu yap demek isteyebilirsiniz. Böylelikle sadece trace modundayken belirli değerleri ekrana yansıtabilir, uygulama canlı ortamda çalışırken sorun çıkmasını engellemiş olursunuz. Bunu bir boolean ifade ile kontrol etmek mümkün "Trace.IsEnabled". Bu ifade eğer doğru ise bize true değerini döndürecektir.

<%
If Trace.IsEnabled
strTrace = "buraya istediğiniz trace bilgisini ekleyebilirsiniz"
End if
Trace.Write(strTrace)
%>

Bir bileşen (component) içerisinde trace yapabilmek için öncelikle System.Web kütüphanesini kullanmalısınız. Burada varolan HttpContext.Current'ın Trace.IsEnabled opsiyonunu true yapmalısınız. Aynı şekilde bunu Trace.write ile ekrana yazdırmanız mümkün.

<%
Imports System.Web
HttpContext.Current.Trace.IsEnabled = true
….
httpContext.Current.Trace.Write _
("bileşen", "buraya istediğiniz trace bilgisini ekleyebilirsiniz")
%>

Bir önceki makalede sayfa bazında trace'i nasıl kullanabileceğimizi anlattım. Peki ya tüm uygulama bazında bunu yapmak istiyorsak ne yapmalıyız. Hatırlayacağınız gibi ASP.NET ile birlikte yeni gelen bir dosya daha vardı "config.web". Bu dosya bizim uygulama bazında tutulacak değerleri tuttuğumuz, uygulama bazında olayları belirlediğimiz dosya idi. Yapı olarak tamamen XML olan dosyaya gerekli trace bilgilerini ekleyerek trace seçeneğini tüm uygulama bazında aktif hale getirmeniz mümkün.

<trace enabled="true"
traceMode="SortByCategory"
requestLimit="40"
pageoutput="true"/>

Bu satırları config.web dosyasına ekledikten sonra artık tüm uygulama bazında trace işlemini başlatmış oluyorsunuz. Yukarıdaki örnekte traceMode kategori sıraması da açık olarak belirlenmiş durumda. RequestLimit bize sunucu üzerinde ne kadar trace bilgisi tutacağımız gösteriyor. Default olarak 10 olan bu değeri biz bu örnekte 40 olarak verdik.

Son olarak şunu da belirtmek istiyorum, trace enabled=true seçeneğini aktif hale getirdiğinizde web sunucusu üzerinde bir dosya oluşacaktır: trace.axd . Bu dosyada tüm trace bilgileri vermiş olduğunuz değerler ile tutulmaktadır. Internet explorer'ı kullanarak dosyanın içeriğini görüntülemeniz de mümkün.
HayaL isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Hizli Erisim


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 02:14.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
WebTeknik - Webmaster Forumu - 2007 - 2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98