Aktivieren der Diagnoseprotokollierung

Abgeschlossen

Es gibt integrierte Diagnosefunktionen, die Sie beim Debuggen einer App Service-App unterstützen. In dieser Lektion erfahren Sie, wie Sie die Diagnoseprotokollierung aktivieren und Ihrer Anwendung die Instrumentierung hinzufügen sowie auf die von Azure protokollierten Informationen zugreifen.

Die folgende Tabelle zeigt die Protokollierungstypen, die unterstützten Plattformen und den Ort, an dem die Protokolle für den Zugriff auf die Informationen gespeichert und gefunden werden können.

Typ Plattform Standort BESCHREIBUNG
Anwendungsprotokollierung Windows, Linux App Service-Dateisystem und/oder Azure Storage-Blobs Protokolliert Meldungen, die von Ihrem Anwendungscode generiert werden. Die Meldungen können durch das von Ihnen ausgewählte Webframework oder direkt aus Ihrem Anwendungscode mithilfe des Standardprotokollierungsmusters Ihrer Sprache generiert werden. Jede Meldung wird einer der folgenden Kategorien zugewiesen: Critical (Kritisch) , Error (Fehler) , Warning (Warnung) , Info (Information) , Debug (Debuggen) und Trace (Ablaufverfolgung) .
Webserverprotokollierung Windows App Service-Dateisystem oder Azure Storage-Blobs Unformatierte HTTP-Anforderungsdaten im erweiterten W3C-Protokolldateiformat. Jede Protokollmeldung enthält Daten wie beispielsweise die HTTP-Methode, den Ressourcen-URI, die Client-IP, den Clientport, den Benutzer-Agent und den Antwortcode.
Detaillierte Fehlerprotokollierung Windows App Service-Dateisystem Kopien der .html-Fehlerseiten, die an den Clientbrowser gesendet worden wären Aus Sicherheitsgründen sollten ausführliche Fehlerseiten nicht an Clients in der Produktionsumgebung gesendet werden, aber App Service kann die Fehlerseite bei jedem Auftreten eines Anwendungsfehlers speichern, der HTTP-Code 400 oder höher aufweist.
Ablaufverfolgung fehlgeschlagener Anforderungen Windows App Service-Dateisystem Detaillierte Ablaufverfolgungsinformationen zu fehlgeschlagenen Anforderungen, einschließlich der Ablaufverfolgung von IIS-Komponenten, die zur Verarbeitung der Anforderung verwendet wurden, sowie die in jeder Komponente benötigte Zeit. Für jede fehlerhafte Anforderung, die die XML-Protokolldatei enthält, wird ein Ordner sowie das XSL-Stylesheet generiert, mit dem die Protokolldatei angezeigt werden kann.
Bereitstellungsprotokollierung Windows, Linux App Service-Dateisystem Hilft bei der Ermittlung, warum eine Bereitstellung fehlgeschlagen ist. Bereitstellungsprotokollierung erfolgt automatisch, und es gibt keine konfigurierbaren Einstellungen für die Bereitstellungsprotokollierung.

Aktivieren der Anwendungsprotokollierung (Windows)

  1. Um die Anwendungsprotokollierung für Windows-Apps im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App, und wählen Sie App Service-Protokolle aus.

  2. Wählen Sie für Anwendungsprotokollierung (Dateisystem) oder Anwendungsprotokollierung (Blob) oder beides die Option Ein aus. Die Option Dateisystem ist für das temporäre Debuggen bestimmt und schaltet sich nach 12 Stunden aus. Die Option Blob ist für die langfristige Protokollierung vorgesehen und benötigt einen Blobspeichercontainer, in den Protokolle geschrieben werden.

    Hinweis

    Wenn Sie die Zugriffsschlüssel für Ihr Speicherkonto neu generieren, müssen Sie die zugehörige Protokollierungskonfiguration so zurücksetzen, dass die aktualisierten Schlüssel verwendet werden. Deaktivieren Sie dazu die Protokollierungsfunktion, und aktivieren Sie sie erneut.

  3. Sie können außerdem die Stufe der Details festlegen, die ins Protokoll aufgenommen werden, wie in der folgenden Tabelle gezeigt.

    Ebene Enthaltene Kategorien
    Disabled Keine
    Fehler Fehler, Kritisch
    Warning Warnung, Fehler, Kritisch
    Informationen Info, Warnung, Fehler, Kritisch
    Ausführlich Ablaufverfolgung, Debugging, Info, Warnung, Fehler, Kritisch (alle Kategorien)
  4. Wenn Sie fertig sind, wählen Sie Speichern aus.

Aktivieren der Anwendungsprotokollierung (Linux/Container)

  1. Legen Sie unter App Services-Protokolle die Option Anwendungsprotokollierung auf Dateisystem fest.

  2. Geben Sie unter Kontingent (MB) das Datenträgerkontingent für die Anwendungsprotokolle an. Legen Sie unter Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, die die Protokolle aufbewahrt werden sollen.

  3. Wenn Sie fertig sind, wählen Sie Speichern aus.

Aktivieren der Webserverprotokollierung

  1. Wählen Sie Webserverprotokollierung aus, wählen Sie Speicher aus, um Protokolle im Blobspeicher zu speichern, oder Dateisystem, um Protokolle im App Service-Dateisystem zu speichern.

  2. Legen Sie unter Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, die die Protokolle aufbewahrt werden sollen.

  3. Wenn Sie fertig sind, wählen Sie Speichern aus.

Hinzufügen von Protokollmeldungen im Code

In Ihrem Anwendungscode verwenden Sie die üblichen Protokollierungsfunktionen, um Protokollmeldungen an die Anwendungsprotokolle zu senden. Beispiel:

  • ASP.NET-Anwendungen können die Klasse System.Diagnostics.Trace verwenden, um Informationen im Anwendungsdiagnoseprotokoll aufzuzeichnen. Beispiel:

    System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
    
  • Standardmäßig verwendet ASP.NET Core den Protokollierungsanbieter Microsoft.Extensions.Logging.AzureAppServices.

  • Python-Anwendungen können das OpenCensus-Paket verwenden, um Protokolle an das Anwendungsdiagnoseprotokoll zu senden.

Streaming von Protokollen

Aktivieren Sie vor dem Streamen von Protokollen in Echtzeit den gewünschten Protokolltyp. Alle Informationen, die in Dateien geschrieben werden, die auf „.txt“, „.log“ oder „.htm“ enden und im Verzeichnis /LogFiles (d:/home/logfiles) gespeichert sind, werden von App Service gestreamt.

Hinweis

Einige Protokolltypen puffern die Schreibvorgänge in die Protokolldatei, was zu Störereignissen im Stream führen kann. Beispielsweise kann ein Anwendungsprotokolleintrag für den Besuch einer Seite im Stream vor dem zugehörigen HTTP-Protokolleintrag für die Seitenanforderung angezeigt werden.

  • Azure-Portal: Um Protokolle im Azure-Portal zu streamen, navigieren Sie zu Ihrer App, und wählen Sie Protokollstream aus.

  • Azure CLI: Verwenden Sie den folgenden Befehl, um Protokolle live in Cloud Shell zu streamen:

    az webapp log tail --name appname --resource-group myResourceGroup
    
  • Lokale Konsole: Um Protokolle in der lokalen Konsole zu streamen, installieren Sie die Azure CLI, und melden Sie sich bei Ihrem Konto an. Befolgen Sie nach der Anmeldung die oben gezeigten Anweisungen für die Azure CLI.

Zugreifen auf Protokolldateien

Wenn Sie die Option „Azure Storage-Blob“ für einen Protokolltyp konfigurieren, benötigen Sie ein Clienttool, das mit Azure Storage funktioniert.

Für Protokolle, die im App Service-Dateisystem gespeichert sind, ist die einfachste Möglichkeit, die ZIP-Datei im Browser unter der folgenden Adresse herunterzuladen:

  • Linux-/Container-Apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows-Apps: https://<app-name>.scm.azurewebsites.net/api/dump

Bei Linux-/Container-Apps enthält die ZIP-Datei Konsolenausgabeprotokolle für den Docker-Host und den Docker-Container. Für eine horizontal hochskalierte App enthält die ZIP-Datei einen Satz von Protokollen für jede Instanz. Im App Service-Dateisystem sind diese Protokolldateien der Inhalt des Verzeichnisses /home/LogFiles.