Eksplorowanie dzienników śledzenia platformy .NET/.NET Core i języka Python w Szczegółowe informacje aplikacji

Wyślij dzienniki śledzenia diagnostycznego dla aplikacji ASP.NET/ASP.NET Core z katalogu ILogger, NLog, log4Net lub System.Diagnostics.Trace do aplikacja systemu Azure Szczegółowe informacje. W przypadku aplikacji języka Python wyślij dzienniki śledzenia diagnostycznego przy użyciu programu AzureLogHandler w środowisku OpenCensus Python dla usługi Azure Monitor. Następnie możesz je eksplorować i wyszukiwać. Te dzienniki są scalane z innymi plikami dziennika z aplikacji. Można ich używać do identyfikowania śladów skojarzonych z każdym żądaniem użytkownika i korelowania ich z innymi zdarzeniami i raportami wyjątków.

Uwaga

Czy potrzebujesz modułu przechwytywania dzienników? Jest to przydatna karta dla rejestratorów innych firm. Jeśli jednak nie używasz jeszcze protokołu NLog, log4Net lub System.Diagnostics.Trace, rozważ bezpośrednie wywołanie metody Application Szczegółowe informacje TrackTrace().

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie udostępnimy już aktualizacji ani obsługi funkcji. Przejście do parametry połączenia w celu skorzystania z nowych funkcji.

Instalowanie rejestrowania w aplikacji

Zainstaluj wybraną strukturę rejestrowania w projekcie, co powinno spowodować wpis w pliku app.config lub web.config.

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

Konfigurowanie Szczegółowe informacje aplikacji w celu zbierania dzienników

Dodaj aplikację Szczegółowe informacje do projektu, jeśli jeszcze tego nie zrobiono i istnieje opcja dołączenia modułu zbierającego dzienniki.

Możesz też kliknąć projekt prawym przyciskiem myszy w Eksplorator rozwiązań, aby skonfigurować Szczegółowe informacje aplikacji. Wybierz opcję Konfiguruj zbieranie śledzenia.

Uwaga

Brak opcji menu Szczegółowe informacje aplikacji lub modułu zbierającego dzienniki? Spróbuj rozwiązać problemy.

Instalacja ręczna

Użyj tej metody, jeśli typ projektu nie jest obsługiwany przez instalator aplikacji Szczegółowe informacje. Jeśli na przykład jest to projekt klasyczny systemu Windows.

  1. Jeśli planujesz używać usługi log4net lub NLog, zainstaluj ją w projekcie.

  2. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz pozycję Zarządzaj pakietami NuGet.

  3. Wyszukaj Szczegółowe informacje aplikacji.

  4. Wybierz jeden z następujących pakietów:

Pakiet NuGet instaluje niezbędne zestawy i modyfikuje plik web.config lub app.config, jeśli ma to zastosowanie.

ILogger

Przykłady użycia implementacji aplikacji Szczegółowe informacje ILogger z aplikacjami konsoli i ASP.NET Core można znaleźć w temacie Application Szczegółowe informacje LoggerProvider for .NET Core ILogger logs (Aplikacja Szczegółowe informacje LoggerProvider dla dzienników ILogger platformy .NET Core.

Wstawianie wywołań dziennika diagnostycznego

W przypadku korzystania z elementu System.Diagnostics.Trace typowe wywołanie to:

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

Jeśli wolisz log4net lub NLog, użyj:

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

Używanie zdarzeń EventSource

Zdarzenia System.Diagnostics.Tracing.EventSource można skonfigurować do wysyłania do Szczegółowe informacje aplikacji jako śladów. Najpierw zainstaluj Microsoft.ApplicationInsights.EventSourceListener pakiet NuGet. Następnie zmodyfikuj sekcję TelemetryModulespliku Application Szczegółowe informacje.config.

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

Dla każdego źródła można ustawić następujące parametry:

  • Nazwa określa nazwę źródła zdarzeń do zebrania.
  • Poziom określa poziom rejestrowania do zbierania: Krytyczne, Błąd, Informacje, LogAlways, Verbose lub Warning.
  • Słowa kluczowe (opcjonalnie) określają wartość całkowitą kombinacji słów kluczowych do użycia.

Używanie zdarzeń DiagnosticSource

Zdarzenia System.Diagnostics.DiagnosticSource można skonfigurować do wysyłania do Szczegółowe informacje aplikacji jako śladów. Najpierw zainstaluj Microsoft.ApplicationInsights.DiagnosticSourceListener pakiet NuGet. Następnie zmodyfikuj sekcję "TelemetryModules" w pliku Application Szczegółowe informacje.config.

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

Dla każdego źródła diagnostycznego, które chcesz śledzić, dodaj wpis z atrybutem Name ustawionym na nazwę źródła diagnostycznego.

Używanie zdarzeń ETW

Śledzenie zdarzeń systemu Windows (ETW) można skonfigurować do wysyłania do aplikacji Szczegółowe informacje jako śladów. Najpierw zainstaluj Microsoft.ApplicationInsights.EtwCollector pakiet NuGet. Następnie zmodyfikuj sekcję "TelemetryModules" w pliku Application Szczegółowe informacje.config.

Uwaga

Zdarzenia ETW można zbierać tylko wtedy, gdy proces hostujący zestaw SDK działa w ramach tożsamości, która jest członkiem użytkowników dziennika wydajności lub Administracja istratorów.

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

Dla każdego źródła można ustawić następujące parametry:

  • ProviderName to nazwa dostawcy ETW do zbierania.
  • ProviderGuid określa identyfikator GUID dostawcy ETW do zbierania. Można go użyć zamiast ProviderName.
  • Poziom ustawia poziom rejestrowania do zbierania. Może to być krytyczne, błędy, informacyjne, logalways, pełne lub ostrzeżenie.
  • Słowa kluczowe (opcjonalnie) ustawiają wartość całkowitą kombinacji słów kluczowych do użycia.

Bezpośrednie używanie interfejsu API śledzenia

Interfejs API śledzenia Szczegółowe informacje aplikacji można wywołać bezpośrednio. Karty rejestrowania używają tego interfejsu API.

Na przykład:

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

Zaletą TrackTrace jest to, że można umieścić stosunkowo długie dane w komunikacie. Możesz na przykład zakodować tam dane POST.

Możesz również dodać poziom ważności do wiadomości. Podobnie jak inne dane telemetryczne, można dodać wartości właściwości, aby ułatwić filtrowanie lub wyszukiwanie różnych zestawów śladów. Na przykład:

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

Teraz możesz łatwo odfiltrować w obszarze Wyszukiwanie transakcji wszystkie komunikaty określonego poziomu ważności, które odnoszą się do określonej bazy danych.

AzureLogHandler for OpenCensus Python

Program obsługi dzienników usługi Azure Monitor umożliwia eksportowanie dzienników języka Python do usługi Azure Monitor.

Instrumentacja aplikacji za pomocą zestawu OpenCensus Python SDK dla usługi Azure Monitor.

W tym przykładzie pokazano, jak wysłać dziennik poziomu ostrzeżenia do usługi Azure Monitor.

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!')

Eksplorowanie dzienników

Uruchom aplikację w trybie debugowania lub wdróż ją na żywo.

W okienku przeglądu aplikacji w portalu Application Szczegółowe informacje wybierz pozycję Wyszukiwanie transakcji.

Możesz na przykład:

  • Filtruj ślady dziennika lub elementy o określonych właściwościach.
  • Szczegółowe sprawdzanie określonego elementu.
  • Znajdź inne dane dziennika systemu, które odnoszą się do tego samego żądania użytkownika (ma ten sam identyfikator operacji).
  • Zapisz konfigurację strony jako ulubionej.

Uwaga

Jeśli aplikacja wysyła dużo danych i używasz zestawu SDK usługi Application Szczegółowe informacje dla ASP.NET w wersji 2.0.0-beta3 lub nowszej, funkcja próbkowania adaptacyjnego może działać i wysyłać tylko część danych telemetrycznych. Dowiedz się więcej o próbkowaniu.

Rozwiązywanie problemów

Znajdź odpowiedzi na często zadawane pytania.

Co powoduje opóźnione dane telemetryczne, przeciążone sieci i nieefektywną transmisję?

System.Diagnostics.Tracing ma funkcję automatycznego napływu. Ta funkcja powoduje opróżnienie zestawu SDK z każdym elementem telemetrii, co jest niepożądane i może powodować problemy z kartą rejestrowania, takie jak opóźnione dane telemetryczne, przeciążona sieć i nieefektywna transmisja.

Jak mogę to zrobić dla języka Java?

W instrumentacji bez kodu w języku Java, co jest zalecane, dzienniki są zbierane z pudełka. Użyj agenta java 3.0.

Agent aplikacji Szczegółowe informacje Java zbiera dzienniki z dzienników log4j, Logback i java.util.logging out of the box.

Dlaczego w menu kontekstowym projektu nie ma opcji Szczegółowe informacje aplikacji?

  • Upewnij się, że na maszynie deweloperów zainstalowano narzędzia Developer Analytics Tools. W programie Visual Studio przejdź do pozycji Rozszerzenia narzędzi>i Aktualizacje i poszukaj narzędzi do analizy deweloperów. Jeśli nie znajduje się na karcie Zainstalowane , otwórz kartę Online i zainstaluj ją.
  • Ten typ projektu może być taki, który nie obsługuje narzędzi Developer Analytics Tools. Użyj instalacji ręcznej.

Dlaczego w narzędziu konfiguracji nie ma opcji adaptera dziennika?

  • Najpierw zainstaluj platformę rejestrowania.
  • Jeśli używasz pliku System.Diagnostics.Trace, upewnij się, że skonfigurowano go w pliku web.config.
  • Upewnij się, że masz najnowszą wersję aplikacji Szczegółowe informacje. W programie Visual Studio przejdź do pozycji Rozszerzenia narzędzi>i Aktualizacje i otwórz kartę Aktualizacje. Jeśli istnieją narzędzia Developer Analytics Tools, wybierz je, aby je zaktualizować.

Dlaczego otrzymuję komunikat o błędzie "Klucz instrumentacji nie może być pusty"?

Prawdopodobnie zainstalowano pakiet NuGet karty rejestrowania bez instalowania Szczegółowe informacje aplikacji. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Aplikacja Szczegółowe informacje.config i wybierz pozycję Aktualizuj aplikację Szczegółowe informacje. Zostanie wyświetlony monit o zalogowanie się na platformie Azure i utworzenie zasobu Szczegółowe informacje aplikacji lub ponowne użycie istniejącego zasobu. Powinien rozwiązać ten problem.

Może upłynąć trochę czasu, gdy wszystkie zdarzenia i żądania przejdą przez potok.

Ile danych jest przechowywanych?

Kilka czynników wpływa na ilość przechowywanych danych. Aby uzyskać więcej informacji, zobacz sekcję Limity na stronie metryk zdarzeń klienta.

Dlaczego nie widzę niektórych wpisów dziennika, których się spodziewałem?

Być może aplikacja wysyła obszerne ilości danych i używasz zestawu SDK usługi Application Szczegółowe informacje dla ASP.NET w wersji 2.0.0-beta3 lub nowszej. W takim przypadku funkcja adaptacyjnego próbkowania może działać i wysyłać tylko część danych telemetrycznych. Dowiedz się więcej o próbkowaniu.

Następne kroki