İzleme Anahtarları

İzleme anahtarları, izleme çıkışını etkinleştirmenize, devre dışı bırakmanıza ve filtrelemenize olanak tanır. Bunlar, kodunuzda bulunan nesnelerdir ve .config dosyası aracılığıyla harici olarak yapılandırılabilir. .NET Framework'te sağlanan üç tür izleme anahtarı vardır: BooleanSwitch sınıfı, TraceSwitch sınıfı ve SourceSwitch sınıfı. BooleanSwitch sınıfı, çeşitli izleme deyimlerini etkinleştirerek veya devre dışı bırakarak geçiş anahtarı işlevi görür. TraceSwitch ve SourceSwitch sınıfları, belirli bir izleme düzeyi için bir izleme anahtarını etkinleştirmenize olanak tanır; böylece Trace bu düzey için belirtilen veya TraceSource iletileri ve altındaki tüm düzeyler görünür. Anahtarı devre dışı bırakırsanız izleme iletileri görünmez. Tüm bu sınıflar, kullanıcı tarafından geliştirilen anahtarlar gibi soyut (MustInherit) sınıfı Switch'ten türetilir.

İzleme anahtarları, bilgileri filtrelemek için yararlı olabilir. Örneğin, bir veri erişim modülündeki her izleme iletisini görmek isteyebilirsiniz, ancak yalnızca uygulamanın geri kalanındaki hata iletilerini görebilirsiniz. Bu durumda, veri erişim modülü için bir izleme anahtarı ve uygulamanın geri kalanı için bir anahtar kullanabilirsiniz. Anahtarları uygun ayarlara yapılandırmak için .config dosyasını kullanarak, aldığınız izleme iletisi türlerini denetleyebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: İzleme Anahtarları Oluşturma, Başlatma ve Yapılandırma.

Genellikle, dağıtılan bir uygulama anahtarları devre dışı bırakılmış olarak yürütülür, böylece kullanıcıların ekranda çok fazla ilgisiz izleme iletisi görünmesine veya uygulama çalışırken bir günlük dosyasını doldurmasına gerek kalmaz. Uygulama yürütme sırasında bir sorun oluşursa uygulamayı durdurabilir, anahtarları etkinleştirebilir ve uygulamayı yeniden başlatabilirsiniz. Ardından izleme iletileri görüntülenir.

Anahtarı kullanmak için önce BooleanSwitch sınıfından, TraceSwitch sınıfından veya geliştirici tanımlı anahtar sınıfından bir anahtar nesnesi oluşturmanız gerekir. Geliştirici tanımlı anahtarlar oluşturma hakkında daha fazla bilgi için .NET Framework başvurusundaki sınıfına bakın Switch . Ardından switch nesnesinin ne zaman kullanılacağını belirten bir yapılandırma değeri ayarlarsınız. Ardından switch nesnesinin ayarını çeşitli İzleme (veya Hata Ayıklama) izleme yöntemlerinde test edebilirsiniz.

İzleme Düzeyleri

TraceSwitch kullanırken dikkat edilmesi gereken ek noktalar vardır. TraceSwitch nesnesi, anahtarın en az belirli bir düzeye ayarlanıp ayarlanmadığını gösteren Boole değerleri döndüren dört özelliğe sahiptir:

Düzeyler, aldığınız izleme bilgilerinin miktarını yalnızca sorunu çözmek için gereken bilgilerle sınırlamanıza olanak sağlar. İzleme anahtarlarını uygun izleme düzeyine ayarlayarak ve yapılandırarak izleme çıkışınızda istediğiniz ayrıntı düzeyini belirtirsiniz. Hata iletileri, uyarı iletileri, bilgilendirme iletileri, ayrıntılı izleme iletileri alabilir veya hiç ileti almazsınız.

Her düzeyle ne tür bir ileti ilişkilendireceğine karar vermek tamamen size kalmış. Genellikle, izleme iletilerinin içeriği her düzeyle ne ilişkilendirdiğinize bağlıdır, ancak düzeyler arasındaki farkları siz belirlersiniz. Örneğin, 3. düzeydeki bir sorunun ayrıntılı açıklamalarını (Bilgi) sağlamak isteyebilirsiniz, ancak yalnızca 1. düzeyde hata başvuru numarası (Hata) sağlayabilirsiniz. Hangi düzenin uygulamanızda en iyi şekilde çalışacağına karar vermek tamamen size kalmış.

Bu özellikler TraceLevel sabit listesi 1 ile 4 arasında değerlere karşılık gelir. Aşağıdaki tabloda TraceLevel sabit listesinin düzeyleri ve değerleri listelemektedir.

Numaralandırılmış değer Tamsayı değeri Görüntülenen iletinin türü (veya belirtilen çıkış hedefine yazılmış)
Kapalı 0 Hiçbiri
Hata 1 Yalnızca hata iletileri
Uyarı 2 Uyarı iletileri ve hata iletileri
Bilgi 3 Bilgilendiren iletiler, uyarı iletileri ve hata iletileri
Ayrıntılı 4 Ayrıntılı iletiler, bilgilendirme iletileri, uyarı iletileri ve hata iletileri

TraceSwitch özellikleri, anahtar için en yüksek izleme düzeyini gösterir. Diğer bir ifadeyle, izleme bilgileri hem belirtilen düzey hem de tüm alt düzeyler için yazılır. Örneğin TraceInfo true ise TraceError ve TraceWarning de true olur ancak TraceVerbose yanlış olabilir.

Bu özellikler salt okunur. TraceLevel özelliği ayarlandığında TraceSwitch nesnesi bunları otomatik olarak ayarlar. Örneğin:

Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")  
myTraceSwitch.Level = TraceLevel.Info  
' This message box displays true, because setting the level to  
' TraceLevel.Info sets all lower levels to true as well.  
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())  
' This messagebox displays false.  
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())  
System.Diagnostics.TraceSwitch myTraceSwitch =
   new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");  
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;  
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.  
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());  
// This message box displays false.  
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());  

Geliştirici Tanımlı Anahtarlar

BooleanSwitch ve TraceSwitch sağlamanın yanı sıra, Switch sınıfından devralarak ve özelleştirilmiş yöntemlerle temel sınıf yöntemlerini geçersiz kılarak kendi anahtarlarınızı tanımlayabilirsiniz. Geliştirici tanımlı anahtarlar oluşturma hakkında daha fazla bilgi için .NET Framework başvurusundaki sınıfına bakın Switch .

Ayrıca bkz.