Włącz rejestrowanie diagnostyczne

Zakończone

Wbudowana diagnostyka ułatwia debugowanie aplikacji usługi App Service. W tej lekcji dowiesz się, jak włączyć rejestrowanie diagnostyczne i dodać instrumentację do aplikacji oraz jak uzyskać dostęp do informacji rejestrowanych przez platformę Azure.

W poniższej tabeli przedstawiono typy rejestrowania, obsługiwane platformy oraz lokalizację i lokalizację dzienników w celu uzyskania dostępu do informacji.

Typ Platforma Lokalizacja opis
Rejestrowanie aplikacji Windows, Linux System plików usługi App Service i/lub obiekty blob usługi Azure Storage Rejestruje komunikaty generowane przez kod aplikacji. Komunikaty są generowane przez wybraną strukturę internetową lub z kodu aplikacji bezpośrednio przy użyciu standardowego wzorca rejestrowania języka. Każdy komunikat jest przypisany do jednej z następujących kategorii: Krytyczne, Błąd, Ostrzeżenie, Informacje, Debugowanie i Śledzenie.
Rejestrowanie serwera sieci Web Windows System plików usługi App Service lub obiekty blob usługi Azure Storage Nieprzetworzone dane żądania HTTP w formacie rozszerzonego pliku dziennika W3C. Każdy komunikat dziennika zawiera dane, takie jak metoda HTTP, identyfikator URI zasobu, adres IP klienta, port klienta, agent użytkownika, kod odpowiedzi itd.
Szczegółowe komunikaty o błędach Windows System plików usługi App Service Kopie stron błędów .html , które w przeciwnym razie byłyby wysyłane do przeglądarki klienta. Ze względów bezpieczeństwa szczegółowe strony błędów nie powinny być wysyłane do klientów w środowisku produkcyjnym, ale usługa App Service może zapisać stronę błędu za każdym razem, gdy wystąpi błąd aplikacji z kodem HTTP 400 lub nowszym.
śledzenia żądań zakończonego niepowodzeniem Windows System plików usługi App Service Szczegółowe informacje dotyczące śledzenia żądań, w tym ślad składników usług IIS używanych do przetwarzania żądania i czasu potrzebnego w każdym składniku. Dla każdego żądania, które zakończyło się niepowodzeniem, jest generowany jeden folder, który zawiera plik dziennika XML, oraz arkusz stylów XSL w celu wyświetlenia pliku dziennika.
Rejestrowanie wdrożenia Windows, Linux System plików usługi App Service Pomaga określić, dlaczego wdrożenie nie powiodło się. Rejestrowanie wdrożenia odbywa się automatycznie i nie ma konfigurowalnych ustawień rejestrowania wdrożenia.

Włączanie rejestrowania aplikacji (Windows)

  1. Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Windows w portalu Azure, przejdź do swojej aplikacji i wybierz pozycję Monitorowanie>Dzienniki usługi App Service.

  2. Wybierz opcję Włącz dla Rejestrowania aplikacji (system plików) lub Rejestrowania aplikacji (blob), lub obu. Opcja System plików służy do tymczasowego debugowania i wyłącza się w ciągu 12 godzin. Opcja Obiekt blob dotyczy rejestrowania długoterminowego i wymaga kontenera magazynu obiektów blob do zapisywania dzienników.

    Uwaga

    Jeśli ponownie wygenerujesz klucze dostępu konta magazynu, musisz zresetować odpowiednią konfigurację rejestrowania, aby używać zaktualizowanych kluczy dostępu. Aby to zrobić, włącz funkcję rejestrowania, a następnie włącz ponownie.

  3. Możesz również ustawić poziom szczegółów zawartych w dzienniku, jak pokazano w poniższej tabeli.

    Poziom Uwzględnione kategorie
    Niepełnosprawny Brak
    Błąd Błąd, krytyczny
    Ostrzeżenie Ostrzeżenie, błąd, krytyczny
    Informacja Informacje, ostrzeżenie, błąd, krytyczne
    Gadatliwy Śledzenie, debugowanie, informacje, ostrzeżenie, błąd, krytyczne (wszystkie kategorie)
  4. Po zakończeniu wybierz pozycję Zapisz.

Włączanie rejestrowania aplikacji (Linux/Container)

  1. W dziennikach usługi App Service ustaw opcję Rejestrowanie aplikacji na Wartość System plików.

  2. W obszarze Limit przydziału (MB) określ limit przydziału dysku dla dzienników aplikacji. W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.

  3. Po zakończeniu wybierz pozycję Zapisz.

Włączanie rejestrowania serwera internetowego

  1. W przypadku rejestrowania serwera internetowego wybierz pozycję Przechowywanie, aby przechowywać dzienniki w magazynie obiektów blob lub System Plików, aby przechowywać dzienniki w systemie plików usługi App Service.

  2. W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.

  3. Po zakończeniu wybierz pozycję Zapisz.

Dodawanie komunikatów dziennika w kodzie

W kodzie aplikacji używasz zwykłych obiektów rejestrowania do wysyłania komunikatów dziennika do dzienników aplikacji. Na przykład:

  • ASP.NET aplikacje mogą używać System.Diagnostics.Trace klasy do rejestrowania informacji w dzienniku diagnostycznym aplikacji. Na przykład:

    System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
    

    ASP.NET Core obejmuje dostawcę rejestrowania usługi Azure App Service. Włącz ją podczas konfigurowania rejestrowania, na przykład:

    builder.Logging.AddAzureWebAppDiagnostics();
    
  • Aplikacje języka Python powinny używać biblioteki OpenTelemetry z usługą Azure Monitor do wysyłania dzienników diagnostycznych aplikacji.

Wysyłanie dzienników do usługi Azure Monitor

Dzienniki platformy i aplikacji można przekazywać do miejsc docelowych usługi Azure Monitor za pomocą ustawień diagnostycznych.

  • W witrynie Azure Portal otwórz aplikację i wybierz pozycję Monitorowanie>ustawień diagnostycznych, a następnie dodaj ustawienie diagnostyczne w celu wysyłania dzienników do obszaru roboczego usługi Log Analytics, konta magazynu lub usługi Event Hubs.
  • Typowe kategorie to AppServiceHTTPLogs (dzienniki serwera internetowego) i AppServiceConsoleLogs (stdout/stderr). Aby uzyskać szczegółowe informacje, zobacz Obsługiwane dzienniki zasobów dla witryny Microsoft.Web.

Strumieniowe przesyłanie dzienników

Przed przesyłaniem strumieniowego dzienników w czasie rzeczywistym włącz odpowiedni typ dziennika. Wszystkie informacje zapisywane w plikach kończących się .txt, .log lub .htm przechowywanych w /home/LogFiles katalogu (Windows: D:\home\LogFiles) są przesyłane strumieniowo przez usługę App Service.

Uwaga

Niektóre typy rejestrowania zapisu w pliku dziennika, co może spowodować brak kolejności zdarzeń w strumieniu. Na przykład wpis dziennika aplikacji, który występuje, gdy użytkownik odwiedza stronę, może być wyświetlany w strumieniu przed odpowiednim wpisem dziennika HTTP dla żądania strony.

  • Azure portal — Aby przesyłać strumieniowo dzienniki w portalu Azure, przejdź do swojej aplikacji i wybierz pozycję Strumień dzienników.

  • Interfejs wiersza polecenia platformy Azure — aby przesyłać strumieniowo dzienniki na żywo w usłudze Cloud Shell, użyj następującego polecenia (uwaga: usługa Cloud Shell może nie działać w przypadku niektórych planów opartych na systemie Linux; w razie potrzeby użyj lokalnego interfejsu wiersza polecenia):

    az webapp log tail --name appname --resource-group myResourceGroup
    

    Aby filtrować określone typy dzienników, takie jak dzienniki HTTP lub aplikacji, użyj parametru --provider , na przykład:

    az webapp log tail --name appname --resource-group myResourceGroup --provider http
    
  • Konsola lokalna — aby przesyłać strumieniowo dzienniki w konsoli lokalnej, zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się do konta. Po zalogowaniu postępuj zgodnie z instrukcjami wyświetlanymi dla interfejsu wiersza polecenia platformy Azure.

Uzyskiwanie dostępu do plików dziennika

Jeśli skonfigurujesz opcję Obiektów blob usługi Azure Storage dla typu dziennika, potrzebujesz narzędzia klienckiego, które współpracuje z usługą Azure Storage.

W przypadku dzienników przechowywanych w systemie plików usługi App Service najprostszym sposobem jest pobranie pliku ZIP w przeglądarce pod adresem:

  • Aplikacje systemu Linux/kontenera: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplikacje systemu Windows: https://<app-name>.scm.azurewebsites.net/api/logs/zip

Uwaga

Punkt api/dump pobiera pełny zrzut diagnostyczny, a nie tylko logi. Służy api/logs/zip do pobierania tylko plików dziennika.

W przypadku aplikacji systemu Linux/kontenera plik ZIP zawiera dzienniki wyjściowe konsoli zarówno dla hosta platformy Docker, jak i kontenera platformy Docker. W przypadku aplikacji skalowanej w poziomie plik ZIP zawiera jeden zestaw dzienników dla każdego wystąpienia. W systemie plików usługi App Service te pliki dziennika są zawartością katalogu /home/LogFiles .