Application Analizler'da .NET/.NET Core ve Python izleme günlüklerini keşfetme

ASP.NET/ASP.NET Core uygulamanız için ILogger, NLog, log4Net veya System.Diagnostics.Trace'den tanılama izleme günlüklerini Azure Uygulaması Analizler gönderin. Python uygulamaları için, Azure İzleyici için OpenCensus Python'da AzureLogHandler kullanarak tanılama izleme günlükleri gönderin. Daha sonra bunları keşfedebilir ve arayabilirsiniz. Bu günlükler, uygulamanızdaki diğer günlük dosyalarıyla birleştirilir. Bunları, her kullanıcı isteğiyle ilişkili izlemeleri tanımlamak ve bunları diğer olaylar ve özel durum raporlarıyla ilişkilendirmek için kullanabilirsiniz.

Dekont

Günlük yakalama modülüne ihtiyacınız var mı? Üçüncü taraf günlükçüler için kullanışlı bir bağdaştırıcıdır. Ancak henüz NLog, log4Net veya System.Diagnostics.Trace kullanmıyorsanız, Application Analizler TrackTrace() öğesini doğrudan çağırmayı göz önünde bulundurun.

Dekont

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.

Uygulamanıza günlük kaydı yükleme

Seçtiğiniz günlük çerçevesini projenize yükleyin; bu, app.config veya web.config içinde bir girişe neden olmalıdır.

 <configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

Uygulama Analizler günlükleri toplayacak şekilde yapılandırma

Bunu henüz yapmadıysanız ve günlük toplayıcısını ekleme seçeneği varsa projenize Uygulama Analizler ekleyin.

Veya uygulama Analizler yapılandırmak için Çözüm Gezgini'de projenize sağ tıklayın. İzleme koleksiyonunu yapılandır seçeneğini belirleyin.

Dekont

Uygulama Analizler menüsü veya günlük toplayıcı seçeneği yok mu? Sorun gidermeyi deneyin.

El ile yükleme

Proje türünüz Uygulama Analizler yükleyicisi tarafından desteklenmiyorsa bu yöntemi kullanın. Örneğin, bu bir Windows masaüstü projesiyse.

  1. log4net veya NLog kullanmayı planlıyorsanız projenize yükleyin.

  2. Çözüm Gezgini'da projenize sağ tıklayın ve NuGet Paketlerini Yönet'i seçin.

  3. Uygulama Analizler için arama.

  4. Aşağıdaki paketlerden birini seçin:

NuGet paketi gerekli derlemeleri yükler ve varsa web.config veya app.config dosyasını değiştirir.

ILogger

Konsol uygulamaları ve ASP.NET Core ile Application Analizler ILogger uygulamasını kullanma örnekleri için bkz. .NET Core ILogger günlükleri için Application Analizler LoggerProvider.

Tanılama günlüğü çağrıları ekleme

System.Diagnostics.Trace kullanıyorsanız, tipik bir çağrı şöyle olabilir:

System.Diagnostics.Trace.TraceWarning("Slow response - database01");

log4net veya NLog'ı tercih ediyorsanız şunu kullanın:

    logger.Warn("Slow response - database01");

EventSource olaylarını kullanma

System.Diagnostics.Tracing.EventSource olaylarını uygulama Analizler izleme olarak gönderilecek şekilde yapılandırabilirsiniz. İlk olarak NuGet paketini yükleyin Microsoft.ApplicationInsights.EventSourceListener . Ardından Application Analizler.config dosyasının bölümünü düzenleyinTelemetryModules.

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
      <Sources>
        <Add Name="MyCompany" Level="Verbose" />
      </Sources>
    </Add>

Her kaynak için aşağıdaki parametreleri ayarlayabilirsiniz:

  • Ad , toplayacak EventSource'un adını belirtir.
  • Düzey , toplayacak günlük düzeyini belirtir: Kritik, Hata, Bilgilendirme, LogAlways, Ayrıntılı veya Uyarı.
  • Anahtar sözcükler (isteğe bağlı) kullanılacak anahtar sözcük bileşimlerinin tamsayı değerini belirtir.

DiagnosticSource olaylarını kullanma

System.Diagnostics.DiagnosticSource olaylarını, uygulama Analizler izleme olarak gönderilecek şekilde yapılandırabilirsiniz. İlk olarak NuGet paketini yükleyin Microsoft.ApplicationInsights.DiagnosticSourceListener . Ardından Application Analizler.config dosyasının "TelemetryModules" bölümünü düzenleyin.

    <Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
      <Sources>
        <Add Name="MyDiagnosticSourceName" />
      </Sources>
    </Add>

İzlemek istediğiniz her tanılama kaynağı için, tanılama kaynağınızın adına özniteliği ayarlanmış bir girdi Name ekleyin.

ETW olaylarını kullanma

Windows için Olay İzleme (ETW) olaylarını uygulama Analizler izleme olarak gönderilecek şekilde yapılandırabilirsiniz. İlk olarak NuGet paketini yükleyin Microsoft.ApplicationInsights.EtwCollector . Ardından Application Analizler.config dosyasının "TelemetryModules" bölümünü düzenleyin.

Dekont

ETW olayları yalnızca SDK'yi barındıran işlem Performans Günlüğü Kullanıcıları veya Yönetici istrator'ların üyesi olan bir kimlik altında çalışıyorsa toplanabilir.

    <Add Type="Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule, Microsoft.ApplicationInsights.EtwCollector">
      <Sources>
        <Add ProviderName="MyCompanyEventSourceName" Level="Verbose" />
      </Sources>
    </Add>

Her kaynak için aşağıdaki parametreleri ayarlayabilirsiniz:

  • ProviderName , toplayacak ETW sağlayıcısının adıdır.
  • ProviderGuid , toplayacak ETW sağlayıcısının GUID'sini belirtir. yerine ProviderNamekullanılabilir.
  • Düzey , toplayacak günlük düzeyini ayarlar. Kritik, Hata, Bilgilendirme, LogAlways, Ayrıntılı veya Uyarı olabilir.
  • Anahtar sözcükler (isteğe bağlı) kullanılacak anahtar sözcük bileşimlerinin tamsayı değerini ayarlar.

İzleme API'sini doğrudan kullanma

Uygulama Analizler izleme API'sini doğrudan çağırabilirsiniz. Günlük bağdaştırıcıları bu API'yi kullanır.

Örneğin:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");

Bunun bir avantajı TrackTrace , iletiye görece uzun veriler koyabilmenizdir. Örneğin, POST verilerini orada kodlayabilirsiniz.

İletinize bir önem düzeyi de ekleyebilirsiniz. Ayrıca, diğer telemetrilerde olduğu gibi, farklı izleme kümelerini filtrelemeye veya aramaya yardımcı olmak için özellik değerleri ekleyebilirsiniz. Örneğin:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
                            SeverityLevel.Warning,
                            new Dictionary<string, string> { { "database", "db.ID" } });

Artık İşlem Arama'da belirli bir veritabanıyla ilgili belirli bir önem düzeyindeki tüm iletileri kolayca filtreleyebilirsiniz.

OpenCensus Python için AzureLogHandler

Azure İzleyici Günlük İşleyicisi, Python günlüklerini Azure İzleyici'ye dışarı aktarmanıza olanak tanır.

Uygulamanızı Azure İzleyici için OpenCensus Python SDK'sı ile izleyin.

Bu örnekte Azure İzleyici'ye uyarı düzeyi günlüğü gönderme adımları gösterilmektedir.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.warning('Hello, World!')

Günlüklerinizi keşfetme

Uygulamanızı hata ayıklama modunda çalıştırın veya canlı olarak dağıtın.

Uygulamanızın Uygulama Analizler portalındaki genel bakış bölmesinde İşlem Arama'yı seçin.

Örneğin şunları yapabilirsiniz:

  • Günlük izlemelerine veya belirli özelliklere sahip öğelere filtre uygulama.
  • Belirli bir öğeyi ayrıntılı olarak inceleyin.
  • Aynı kullanıcı isteğiyle ilişkili (aynı işlem kimliğine sahip) diğer sistem günlüğü verilerini bulun.
  • Sayfanın yapılandırmasını sık kullanılan olarak kaydedin.

Dekont

Uygulamanız çok fazla veri gönderiyorsa ve ASP.NET sürüm 2.0.0-beta3 veya üzeri için Application Analizler SDK kullanıyorsanız uyarlamalı örnekleme özelliği telemetrinizin yalnızca bir bölümünü çalıştırabilir ve gönderebilir. Örnekleme hakkında daha fazla bilgi edinin.

Sorun giderme

Sık sorulan sorulara yanıtlar bulun.

Gecikmeli telemetrinin, aşırı yüklenmiş bir ağın ve verimsiz iletimin nedeni nedir?

System.Diagnostics.Tracing'in Autoflush özelliği vardır. Bu özellik SDK'nın istenmeyen her telemetri öğesiyle temizlemesine neden olur ve gecikmeli telemetri, aşırı yüklenmiş ağ ve verimsiz iletim gibi günlük bağdaştırıcısı sorunlarına neden olabilir.

Bunu Java için Nasıl yaparım? yapar?

Önerilen Java kodsuz izlemesinde günlükler kutudan çıkarılır. Java 3.0 aracısı kullanın.

Application Analizler Java aracısı Log4j, Logback ve java.util.logging dosyasından günlükleri kutudan toplar.

Proje bağlam menüsünde neden Uygulama Analizler seçeneği yok?

  • Geliştirici Analizi Araçları'nın geliştirme makinesinde yüklü olduğundan emin olun. Visual Studio'da Araçlar>Uzantıları ve Güncelleştirmeler gidin ve Geliştirici Analizi Araçları'nı arayın. Yüklü sekmesinde değilse Çevrimiçi sekmesini açın ve yükleyin.
  • Bu proje türü, Geliştirici Analizi Araçları'nın desteklemediği bir tür olabilir. El ile yüklemeyi kullanın.

Yapılandırma aracında neden günlük bağdaştırıcısı seçeneği yok?

  • Önce günlük çerçevesini yükleyin.
  • System.Diagnostics.Trace kullanıyorsanız web.config içinde yapılandırdığınızdan emin olun.
  • Application Analizler'ın en son sürümüne sahip olduğunuzdan emin olun. Visual Studio'da Araçlar>Uzantıları ve Güncelleştirmeler gidin ve Güncelleştirmeler sekmesini açın.Geliştirici Analizi Araçları varsa güncelleştirmek için bunu seçin.

"İzleme anahtarı boş olamaz" hata iletisini neden alıyorum?

Büyük olasılıkla Application Analizler yüklemeden günlük bağdaştırıcısı NuGet paketini yüklemişsinizdir. Çözüm Gezgini'da Uygulama Analizler.config öğesine sağ tıklayın ve Uygulama Analizler Güncelleştir'i seçin. Azure'da oturum açmanız ve bir Uygulama Analizler kaynağı oluşturmanız veya var olan bir kaynağı yeniden kullanmanız istenir. Sorunu çözmelidir.

Tüm olayların ve isteklerin işlem hattından geçmesi biraz zaman alabilir.

Ne kadar veri tutulur?

Tutulan veri miktarını çeşitli faktörler etkiler. Daha fazla bilgi için müşteri olay ölçümleri sayfasının Sınırlar bölümüne bakın.

Neden beklediğim bazı günlük girdilerini görmüyorum?

Uygulamanız büyük miktarlarda veri gönderiyor olabilir ve ASP.NET sürüm 2.0.0-beta3 veya üzeri için Application Analizler SDK'sını kullanıyorsunuz. Bu durumda uyarlamalı örnekleme özelliği çalışabilir ve telemetrinizin yalnızca bir bölümünü gönderebilir. Örnekleme hakkında daha fazla bilgi edinin.

Sonraki adımlar