Bu konuda en iyi uygulamalar için bazı altın kurallar bulmaya çalışarak izleme ve kaydetme hakkında çok şey okudum, ancak hiçbiri yok. İnsanlar, iyi programcıların iyi izler ürettiğini söylüyorlar, ancak bu şekilde koymak ve deneyimlerden gelmesi gerekiyor.
Ayrıca burada ve internette benzer soruları okudum ve sorduğum aynı şey değiller veya tatmin edici bir cevabım yok, belki de sorular biraz ayrıntısız olduğu için.
Bu nedenle, millet, izlemenin hata ayıklayıcı ekleyemediğiniz durumlarda uygulamada hata ayıklama deneyimini çoğaltması gerektiğini söylüyor. Uygulamadaki her kontrol noktasında hangi yolun izlendiğini görebilmeniz için yeterli bağlam sağlamalıdır.
Daha derine inerken, "olay günlüğü ayrıntılı kontrol akışı yerine ana durumları yakaladığından izlemekten farklıdır" şeklinde izlemeyle olay günlüğü arasında ayrım yapabilirsiniz.
Şimdi, sadece adlandırma alanındakiler gibi standart .NET sınıflarını kullanarak izleme ve günlüğe kaydetme yapmak istediğimi söyleyin System.Diagnostics
. TraceSource sınıfının iş için statik Trace sınıfından daha iyi olduğunu düşündüm, çünkü izleme düzeylerini ayırt etmek istiyorum ve TraceSource sınıfını kullanarak kullanmak istediğim olay türünü bildiren bir parametrede geçirebilirim. Trace.WriteLineIf
ve sonra ve gibi şeyleri doğrulayın SourceSwitch.TraceInformation
ve SourceSwitch.TraceErrors
hatta TraceVerbose
veya gibi özelliklere sahip değil TraceStart
.
Tüm bunları göz önünde bulundurarak, aşağıdaki gibi yapmak için iyi bir uygulama düşünür müsünüz:
- Tek bir mantıksal işlemi veya bir boru hattını temsil etmesi gereken bir yönteme başlarken, yönteme iletilen parametre değerlerinin bir dize gösterimi ile birlikte bir "Başlat" olayı izleyin.
- Veritabanına bir öğe eklerken bir "Bilgi" olayı izleyin.
- Önemli bir if / else ifadesinde bir yoldan veya bir başkasından giderken bir "Bilgi" olayı izleyin.
- Bir kurtarılabilir hata olup olmadığına bağlı olarak bir "Critical" veya "Error" komutunu bir catch bloğunda izleyin.
- Yöntemin yürütülmesini bitirirken bir "Dur" olayı izleyin.
Ayrıca, Ayrıntılı ve Uyarı olay türlerini izlemek için en iyi zamanları açıklığa kavuşturun. Güzel iz / günlüğe kaydetme ve paylaşmaya istekli kod örnekleri varsa, bu mükemmel olurdu.
Not: Burada bazı iyi bilgiler buldum, ancak aradığım şeyi hala bulamadım: http://msdn.microsoft.com/en-us/magazine/ff714589.aspx