Aracılığıyla paylaş


Tanılama İzleri

İzlemeler, uygulama yürütme sırasında oluşturulan belirli iletilerin yayımlanmasıdır. İzlemeyi kullanırken, gönderilen iletileri toplamak ve kaydetmek için bir mekanizmanız olmalıdır. İz iletileri dinleyiciler tarafından alınır. Dinleyicinin amacı, izleme iletilerini toplamak, depolamak ve yönlendirmektir. Dinleyiciler, izleme çıktısını günlük, pencere veya metin dosyası gibi uygun bir hedefe yönlendirir.

bu tür dinleyicilerden biri olan DefaultTraceListener, izleme etkinleştirildiğinde otomatik olarak oluşturulur ve başlatılır. İzleme çıkışının ek kaynaklara yönlendirilmesi için ek izleme dinleyicileri oluşturup başlatmanız gerekir. Oluşturduğunuz dinleyiciler tek tek ihtiyaçlarınızı yansıtmalıdır. Örneğin, tüm izleme çıktılarının metin kaydını isteyebilirsiniz. Bu durumda, etkinleştirildiğinde tüm çıkışı yeni bir metin dosyasına yazan bir dinleyici oluşturursunuz. Öte yandan, yalnızca uygulama yürütme sırasında çıkışı görüntülemek isteyebilirsiniz. Bu durumda, tüm çıkışı bir konsol penceresine yönlendiren bir dinleyici oluşturabilirsiniz. EventLogTraceListener izleme verisini bir olay günlüğüne yönlendirebilir ve TextWriterTraceListener izleme verisini bir akışa yazabilir.

İzlemeyi Etkinleştirme

İşlem işleme sırasında izlemeleri etkinleştirmek için uygulamanızın yapılandırma dosyasını düzenlemeniz gerekir. Aşağıda bir örnek verilmiştir.

<configuration>
<system.diagnostics>
     <sources>
          <source name="System.Transactions" switchValue="Warning">
               <listeners>
                    <add name="tx"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData= "tx.log" />
               </listeners>
          </source>
     </sources>
</system.diagnostics>
</configuration>

System.Transactions izlemeleri "System.Transactions" adlı kaynağa yazılır. Kullanmak istediğiniz izleme dinleyicisinin adını ve türünü belirtmek için kullanabilirsiniz add . Örnek yapılandırmamızda Dinleyiciye "tx" adını verdik ve standart .NET Framework izleme dinleyicisini (XmlWriterTraceListener) kullanmak istediğimiz tür olarak ekledik. Dinleyici için günlük dosyasının adını ayarlamak amacıyla initializeData kullanın. Ayrıca, basit bir dosya adı için tam yolu değiştirebilirsiniz.

Her izleme iletisi türüne, önem derecesini belirtmek için bir düzey atanır. Uygulama etki alanının izleme düzeyi bir olay türünün düzeyine eşit veya daha düşükse, bu ileti oluşturulur. İzleme düzeyi, yapılandırma dosyasındaki switchValue ayar tarafından denetlenmektedir. Tanılama izleme iletileriyle ilişkili düzeyler aşağıdaki tabloda tanımlanmıştır.

İzleme Düzeyi Açıklama
Çok Önemli Aşağıdakiler gibi ciddi hatalar oluştu:

- Kullanıcı işlevselliğinde anında kayıplara neden olabilecek bir hata.
- Bir yöneticinin işlev kaybını önlemek için eylem gerçekleştirmesini gerektiren bir olay.
- Kod kilitleniyor.
- Bu izleme düzeyi, diğer kritik izlemeleri yorumlamak için yeterli bağlam da sağlayabilir. Bu, ciddi bir hataya yol açan işlemlerin sırasını belirlemeye yardımcı olabilir.
Hata Kullanıcı işlevselliği kaybına neden olabilecek bir hata (örneğin, geçersiz yapılandırma veya ağ davranışı) oluştu.
Uyarı Daha sonra bir hataya veya kritik hataya (örneğin ayırmanın başarısız olması veya bir sınıra yaklaşması) neden olabilecek bir koşul vardır. Kullanıcı kodundaki hataların normal işlenmesi (örneğin, işlem durduruldu, zaman aşımları, kimlik doğrulaması başarısız oldu) bir uyarı da oluşturabilir.
Bilgi Sistem durumunu izlemek ve tanılamak, performansı ölçmek veya profil oluşturmak için yararlı iletiler oluşturulur. Bunlar, oluşturulan veya taahhüt edilen bir işlem, önemli bir sınırın geçilmesi veya önemli kaynakların tahsis edilmesi gibi işlem ve katılım ömrü olaylarını içerebilir. Daha sonra bir geliştirici bu tür bilgileri kapasite planlaması ve performans yönetimi için kullanabilir.

İzleme Kodları

Aşağıdaki tabloda altyapı tarafından System.Transactions oluşturulan izleme kodları listelenmektedir. Tabloya izleme kodu tanımlayıcısı, EventType izleme için numaralandırma düzeyi ve izleme için içinde yer alan TraceRecord ek veriler dahildir. Buna ek olarak, izlemenin ilgili izleme düzeyi de TraceRecord içinde depolanır.

TraceCode EtkinlikTürü TraceRecord'da ek veriler
İşlemOluşturuldu Bilgi İşlemTakipId
İşlem Tanıtıldı Bilgi Yerel TransactionTraceId, Dağıtılmış TransactionTraceId
KaydolmaOluşturuldu Bilgi TransactionTraceId, EnlistmentTraceId, KatılımTürü (dayanıklı/geçici), KatılımSeçenekleri
KaydolmaGeriÇağırmaNegatif Uyarı TransactionİzlemeKimliği, KatılımİzlemeKimliği

Geri çağırma işlevi (forcerollback/aborted/indoubt)
TransactionRollbackCalled Uyarı İşlemTakipId
İşlem Durduruldu Uyarı İşlemTakipId
Şüpheli İşlem Uyarı İşlemTakipId
İşlemKapsamıOluşturuldu Bilgi TransactionScopeResult, aşağıdaki gibi olabilir:

- Yeni işlem.
- İşlem geçti.
- Bağımlı işlem geçirildi.
- Geçerli işlemi kullanma.
- İşlem yok.

yeni geçerli TransactionTraceId
TransactionScopeDisposed Bilgi Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si.
İşlemKapsamıTamamlanmamış Uyarı Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si.
İşlemKapsamıYanlışYuvaYerleştirildi Uyarı Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si.
İşlemKapsamıGüncelİşlemDeğişti Uyarı Mevcut eski İşlem İzleme Kimliği, diğer İşlem İzleme Kimliği
TransactionScopeTimeout Uyarı Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si.
Bağımlı Klon Oluşturuldu Bilgi TransactionTraceId, oluşturulan bağımlı işlemin türü (RollbackIfNotComplete/BlockCommitUntilComplete)
DependentCloneComplete Bilgi İşlemTakipId
Kurtarma Tamamlandı Bilgi Kaynak Yöneticisi GUID (temel)
Yeniden Listele Bilgi Kaynak Yöneticisi GUID (temel)
İşlemSerileştirilmiş Bilgi İşlemİzlemeId.
İşlem İstisnası Hata Özel durum iletisi
Geçersiz İşlem İstisnası Hata Özel durum iletisi
Dahili Hata Çok Önemli Özel durum iletisi
TransferEvent Bir işlem seri durumdan çıkarıldığında veya bir işlemden dağıtılmış bir System.Transactions işleme yükseltildiğinde, ExecutionContext'ten geçerli ActivityID ve dağıtılmış işlem kimliği yazılır.

DTC yönetilen koda geri çağırdığında, dağıtılmış işlem kimliği geri çağırma süresi boyunca ExecutionContext içinde ActivityID olarak ayarlanır.
Yapılandırılmış Varsayılan Zaman Aşımı Ayarlandı Uyarı Ek veri yok
İşlem Zaman Aşımı Uyarı Zaman aşımına uğrayan işlemin TransactionTraceId değeri.

Yukarıdaki ek veri öğelerinin her biri için XML şeması aşağıdaki biçime sahiptir.

İşlem İz Tanımlayıcı

<TransactionTraceIdentifier>

<TransactionIdentifier >

string representation of transaction id

</TransactionIdentifier>

< CloneIdentifier >

the clone id number

</CloneIdentifier>

</TransactionTraceIdentifier>

Tescil İzleme Tanımlayıcısı

<EnlistmentTraceIdentifier>

<ResourceManagerId>

string form of guid

</ResourceManagerId>

<TransactionTraceIdentifier>

<TransactionIdentifier >

string representation of transaction id

</TransactionIdentifier>

<CloneIdentifier >

the clone id number

</CloneIdentifier>

<TransactionTraceIdentifier>

<EnlistmentIdentifier>

the enlistment id number

</EnlistmentIdentifier>

</EnlistmentTraceIdentifier>

Resource Manager Tanımlayıcısı

<ResourceManagerId>

string form of guid

</ResourceManagerId>

İzleme için Güvenlik Sorunları

Yönetici olarak izlemeyi açtığınızda, hassas bilgiler varsayılan olarak genel olarak görüntülenebilir bir izleme günlüğüne yazılabilir. Olası güvenlik tehditlerini azaltmak için, izleme günlüğünü paylaşım ve dosya sistemi erişim izinleri tarafından denetlenen güvenli bir konumda depolamayı düşünmelisiniz.