Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özel durumlar için anlamlı tanılama iletileri oluşturmaya çalışırken, ilgili bilgilerin eklenmesinin korunması zor olabilir. Standart özel durum iletisi genellikle özel duruma eşlik eden kritik ayrıntılardan yoksundur, ancak Exception.ToString yöntemini çağırdığınızda fazla sayıda durum bilgisi elde edersiniz.
Bu makale , Microsoft.Extensions.Diagnostics.ExceptionSummarization NuGet paketine dayanır.
Özel durum özetleme hedefi
Ölçüm etiketleri genellikle sınırlı sayıda farklı değeri destekler ve bu nedenle, sonucu Exception.ToString()gibi yüksek oranda değişken olan değerleri temsil etmeye uygun değildir. Özel durum özeti, özel durum bilgilerinin düşük kardinaliteli sürümünü temsil eder ve bu tür durumlar için uygundur.
Özel durum özetlemesinin hedefi iki kattır:
- Özel durum durumuyla ilişkili kardinaliteyi azaltmak için, özel durumlar ölçümlerde güvenilir bir şekilde sayılabilir. Ölçüm boyutlarının kardinalitesi sınırlı olduğundan bu önemlidir.
- Özel durum durumundan gizliliğe duyarlı bilgileri ortadan kaldırmak için günlüklere bazı anlamlı özel durum bilgileri eklenebilir.
İstisna özetleme API'si
Arabirim, IExceptionSummarizer tanınan istisna türlerinden önemli ayrıntıları ayıklamak için yöntemler sunar ve bu sayede en kaliteli tanı mesajlarının oluşturulması için temel teşkil eden tek bir string sağlar.
yöntemi, IExceptionSummarizer.Summarize belirli bir özel durum türünü işleyebilen bir özetleyici tanımlayana kadar kayıtlı özetleyicilerin listesini sistematik olarak geçirmektedir. Özel durum türünü tanıyabilen bir özetleyici olmaması durumunda, bunun yerine anlamlı bir varsayılan özel durum özeti sağlanır.
yönteminin Summarize sonucu bir ExceptionSummary yapı döndürür ve aşağıdaki özellikleri içerir:
- ExceptionSummary.Description: Özel durumun özet açıklaması.
- ExceptionSummary.AdditionalDetails: Alt düzey tanılama kullanımına yönelik olan bu özellik, özel durum hakkında ek ayrıntılar içerir ve görece yüksek kardinaliteye sahiptir. Bu özellik, gizliliğe duyarlı bilgiler içerebilir.
- ExceptionSummary.ExceptionType: İç özel durumlar olmadığı sürece özel durumun türü ve bu durumda hem dış hem de iç türler yansıtılır.
Örnek özel durum özetleme kullanımı
Aşağıdaki örnekte, özel durumun özetini almak için arabirimin nasıl kullanılacağı IExceptionSummarizer gösterilmektedir.
using System.Net;
using System.Net.Sockets;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.ExceptionSummarization;
// Add exception summarization services.
var services = new ServiceCollection()
.AddExceptionSummarizer(static builder => builder.AddHttpProvider());
var provider = services.BuildServiceProvider();
// Get the exception summarizer.
IExceptionSummarizer summarizer = provider.GetRequiredService<IExceptionSummarizer>();
// Define exceptions to summarize.
Exception[] exceptions =
[
new OperationCanceledException("Operation cancelled..."),
new TaskCanceledException("Task cancelled..."),
new SocketException(10_024, "Too many sockets open..."),
new WebException("Keep alive failure...",
WebExceptionStatus.KeepAliveFailure)
];
foreach (var exception in exceptions)
{
// Summarize the exception.
ExceptionSummary summary = summarizer.Summarize(exception);
Console.WriteLine(summary);
}
Console.ReadLine();
Önceki kod:
- Yeni bir ServiceCollection örneği oluşturur ve bir çağrı AddExceptionSummarizer uzantı yöntemine zincirler.
-
AddExceptionSummarizeruzantı yöntemi,ExceptionSummarizerBuilderörneğini yapılandırmak için kullanılan bir temsilciyi kabul eder. -
buildertüründeki özel durumları işleyen HTTP sağlayıcısını eklemek için kullanılır:
-
-
ServiceProviderörnekten yeni birServiceCollectionörneği oluşturur. -
IExceptionSummarizerörneğindenServiceProviderarabiriminin bir örneğini alır. - Bir özel durum koleksiyonu üzerinde yineleme yaparak her bir özel durumda
Summarizeyöntemini çağırır ve sonucu görüntüler.
Uyarı
Tüm özel durum özetleme uygulamalarının tasarımında birincil odak, kişisel bilgilerin (PII) korunmasına öncelik vermek yerine tanılama kolaylığı sağlamaktır. ExceptionSummary.Description hassas bilgiler içermez, ancak ExceptionSummary.AdditionalDetails uygulamasına bağlı olarak hassas bilgiler içerebilir.