.NET için Azure SDK ile günlüğe kaydetme
.NET için Azure SDK istemci kitaplıkları, istemci kitaplığı işlemlerini günlüğe kaydetme özelliğini içerir. Bu, istemci kitaplıklarının Azure hizmetlerinde yapmakta olduğu g/ç isteklerini ve yanıtlarını izlemenize olanak sağlar. Genellikle Günlükler, iletişim sorunlarını ayıklamak veya tanılamak için kullanılır. Bu makalede, .NET için Azure SDK ile günlüğe kaydetmeyi etkinleştirmek için üç yaklaşım açıklanmaktadır:
- Yerleşik yöntemlerle günlüğe kaydetmeyi etkinleştirme
- Özel günlüğü yapılandırma
- ASP.NET Core günlüğe kaydetme ile eşleme
Önemli
Bu makale, .NET için Azure SDK 'sının en son sürümlerini kullanan istemci kitaplıkları için geçerlidir. Bir kitaplığın desteklenip desteklenmediğini görmek için, Azure SDK 'sının en son sürümlerilistesine bakın. Uygulamanız Azure SDK istemci kitaplıklarının eski bir sürümünü kullanıyorsa, geçerli hizmet belgelerindeki belirli yönergelere bakın.
Günlük bilgileri
SDK, kişisel verileri kaldırmak için aşağıdaki bilgileri günlüğe kaydeder, parametre sorgusunu ve üst bilgi değerlerini temizler.
HTTP istek günlüğü girişi:
- Benzersiz Kimlik
- HTTP yöntemi
- URI
- Giden istek üstbilgileri
HTTP yanıt günlüğü girişi:
- G/ç işleminin süresi (geçen süre)
- Request ID
- HTTP durum kodu
- HTTP neden tümceciği
- Yanıt üst bilgileri
- Uygun olduğunda hata bilgileri
İstek ve yanıt içeriği için:
- Content-Type üst bilgisine bağlı olarak, metin veya bayt olarak içerik akışı.
Not
İçerik günlüğe kaydetme varsayılan olarak devre dışıdır. Etkinleştirmek için,
Diagnostics.IsLoggingContentEnablediçinde olarak ayarlayıntrueClientOptions.
Olay günlükleri genellikle şu üç düzeyden birinde çıkış olur:
- İstek ve yanıt olayları için bilgilendirici
- Hatalar için uyarı
- Ayrıntılı iletiler ve içerik günlüğü için ayrıntılı
Yerleşik yöntemlerle günlüğe kaydetmeyi etkinleştirme
.net istemci kitaplıkları için Azure SDK, olayları, .net için tipik olan EventSource sınıfıaracılığıyla Windows (ETW) için olay izleme günlüğüne kaydeder. Olay kaynakları, uygulama kodunuzda yapılandırılmış günlük oluşturmayı en düşük performans yüküyle kullanmanıza olanak sağlar. Bu olay günlüklerine erişim kazanmak için olay dinleyicilerini kaydetmeniz gerekir.
SDK, Azure.Core.Diagnostics.AzureEventSourceListener .net uygulamanız için kapsamlı günlüğü kolaylaştıran iki statik yöntem içeren sınıfı (Azure. Core NuGet paketinde tanımlanmıştır) içerir: CreateConsoleLogger ve CreateTraceLogger . Bu yöntemler, günlük düzeyini belirten isteğe bağlı bir parametre alır.
Konsol penceresinde günlüğe kaydet
.NET istemci kitaplıkları için Azure SDK 'sının temel bir temel, kapsamlı günlükleri gerçek zamanlı görüntüleme özelliğini basitleştirmektir. CreateConsoleLoggerYöntemi, tek bir kod satırıyla günlükleri konsol penceresine göndermenizi sağlar:
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
Tanılama izlemelerinde günlüğe kaydet
İzleme dinleyicileri uygularsanız, CreateTraceLogger Standart .NET olay izleme mekanizmasına () oturum açmak için yöntemini kullanabilirsiniz System.Diagnostics.Tracing . .NET 'teki olay izleme hakkında daha fazla bilgi için bkz. Trace dinleyicileri. Bu örnek, ayrıntılı bir günlük düzeyi belirtir:
using AzureEventSourceListener listener = AzureEventSourceListener.CreateTraceLogger(EventLevel.Verbose);
Özel günlüğü yapılandırma
Yukarıda belirtildiği gibi, .NET için Azure SDK 'dan günlük iletilerini almak üzere olay dinleyicilerini kaydetmeniz gerekir. Yukarıdaki Basitleştirilmiş yöntemlerden birini kullanarak kapsamlı günlük uygulamak istemiyorsanız, sınıfının bir örneğini oluşturabilir AzureEventSourceListener ve yazdığınız bir geri çağırma işlevi geçirebilirsiniz. Bu yöntem, ihtiyacınız olan ancak yapmanız gereken günlük iletilerini alır. Ayrıca, örneği oluşturduğunuzda, dahil edilecek günlük düzeylerini de belirtebilirsiniz.
Aşağıdaki örnek, özel bir iletiyle konsola oturum açan bir olay dinleyicisi oluşturur ve ayrıntı düzeyinde Azure Core olaylarına filtrelenir.
using AzureEventSourceListener listener = new AzureEventSourceListener((e, message) =>
{
// Only log messages from Azure-Core event source
if (e.EventSource.Name == "Azure-Core")
{
Console.WriteLine($"{DateTime.Now} {message}");
}
},
level: EventLevel.Verbose);
ASP.NET Core günlüğe kaydetme ile eşleme
AddAzureClientsUzantı yöntemi çağrıldığında AzureEventSourceLogForwarder hizmet kaydedilir. AzureEventSourceLogForwarderhizmet, günlüğe kaydetme için standart ASP.NET Core günlük yapılandırmasını kullanmanıza olanak sağlar.
Aşağıdaki tabloda .NET için Azure SDK 'nın EventLevel ASP.NET Core nasıl eşlendiği gösterilmektedir LogLevel .
Azure SDK EventLevel |
ASP.NET Core LogLevel |
|---|---|
Critical |
Critical |
Error |
Error |
Informational |
Information |
Warning |
Warning |
Verbose |
Debug |
LogAlways |
Information |
AddAzureClientsbir ASP.NET Core projesi yönteminde aşağıdaki çağrıyı göz önünde bulundurun Startup.ConfigureServices . AddAzureClientsyöntemi, Azure Service Bus istemcisini kaydeder ve tüm istemciler için kullanılacak varsayılan kimlik bilgisini ayarlar.
public void ConfigureServices(IServiceCollection services)
{
services.AddAzureClients(builder =>
{
builder.AddServiceBusClient(Configuration.GetConnectionString("ServiceBus"));
builder.UseCredential(new DefaultAzureCredential());
});
// code omitted for brevity
}
ASP.NET Core projenin appsettings. json dosyasında, Azure Service Bus istemci kitaplığı için varsayılan günlük düzeyi değiştirilebilir. Örneğin, Debug Logging:LogLevel:Azure.Messaging.ServiceBus anahtarı aşağıdaki şekilde ayarlayarak öğesine değiştirin:
{
"ConnectionStrings": {
"ServiceBus": "<connection_string>"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Error",
"Azure.Messaging.ServiceBus": "Debug"
}
},
"AllowedHosts": "*"
}
Logging:LogLevel:Azure.Messaging.ServiceBusanahtar olarak ayarlandığı için Debug , Service Bus istemci olayları EventLevel.Verbose günlüğe kaydedilecek. Daha fazla bilgi için bkz. .NET Core 'Da günlüğe kaydetme ve ASP.NET Core.
Sonraki adımlar
- Azure App Service’te uygulamalar için tanılama günlüğünü etkinleştirme
- Azure Güvenlik günlüğü ve denetim seçeneklerini gözden geçirin
- Azure platform günlükleriyle nasıl çalışacağınızı öğrenin
- .NET Core günlüğe kaydetme ve izleme hakkında daha fazla bilgi edinin