Freigeben über


Aktivieren der Diagnoseprotokollierung für Apps in Azure App Service

Azure stellt integrierte Diagnose bereit, um das Debuggen einer Azure App Service-App zu unterstützen. In diesem Artikel erfahren Sie, wie Sie die Diagnoseprotokollierung aktivieren und Ihrer Anwendung Instrumentierung hinzufügen. Außerdem erfahren Sie, wie Sie auf die Von Azure protokollierten Informationen zugreifen.

In diesem Artikel wird das Azure-Portal und die Azure CLI verwendet, um mit Diagnoseprotokollen zu arbeiten. Informationen zum Arbeiten mit Diagnoseprotokollen mithilfe von Visual Studio finden Sie unter Problembehandlung für eine App in Azure App Service mit Visual Studio.

Zusätzlich zu den Protokollierungsanweisungen in diesem Artikel können Sie die integrierte Protokollierungsfunktion von Azure Monitor verwenden. Weitere Informationen finden Sie unter Senden von Protokollen an Azure Monitor.

Hinweis

Der App-Dienst bietet ein dediziertes, interaktives Diagnosetool, mit dem Sie Probleme mit Ihrer Anwendung beheben können. Weitere Informationen finden Sie unter Azure App Service Diagnoseübersicht.

Sie können auch andere Azure-Dienste verwenden, um die Protokollierungs- und Überwachungsfunktionen Ihrer App wie Azure Monitor zu verbessern.

Übersicht über Protokollierungstypen

Typ Plattform Protokollspeicherort Beschreibung
Anwendungsprotokollierung Windows, Linux App Service-Dateisystem und/oder Azure Storage-Blobs Protokollieren Sie Nachrichten, die vom Anwendungscode generiert werden. Die Nachrichten können vom von Ihnen ausgewählten Webframework oder direkt aus Dem Anwendungscode mithilfe des Standardprotokollierungsmusters Ihrer Sprache generiert werden. Jeder Nachricht wird eine der folgenden Kategorien zugewiesen: Kritisch, Fehler, Warnung, Info, Debug oder Ablaufverfolgung. Sie können auswählen, wie ausführlich die Protokollierung erfolgen soll, indem Sie den Schweregrad beim Aktivieren der Anwendungsprotokollierung festlegen.
Webserverprotokollierung Fenster App Service-Dateisystem oder Azure Storage-Blobs Unformatierte HTTP-Anforderungsdaten im erweiterten W3C-Protokolldateiformat. Jede Protokollnachricht enthält Daten wie die HTTP-Methode, ressourcen-URI, Client-IP, Clientport, Benutzer-Agent und Antwortcode.
Detaillierte Fehlermeldungen Fenster App Service-Dateisystem Kopien der .htm Fehlerseiten, die an den Clientbrowser gesendet wurden. Aus Sicherheitsgründen sollten detaillierte Fehlerseiten nicht an Clients in der Produktion gesendet werden. App Service kann die Fehlerseite jedoch jedes Mal speichern, wenn ein Anwendungsfehler mit HTTP-Code 400 oder höher auftritt. Die Seite enthält möglicherweise Informationen, mit denen Sie ermitteln können, warum der Server den Fehlercode zurückgibt.
Ablaufverfolgung für Anforderungsfehler Fenster App Service-Dateisystem Detaillierte Ablaufverfolgungsinformationen zu fehlgeschlagenen Anforderungen, einschließlich einer Ablaufverfolgung der IIS-Komponenten, die für die Verarbeitung der Anforderung verwendet wurden, sowie der Zeit, die in jeder Komponente benötigt wurde. Diese Informationen sind hilfreich, wenn Sie die Leistung der Website verbessern oder einen bestimmten HTTP-Fehler isolieren möchten. Für jede fehlgeschlagene Anforderung wird ein Ordner generiert. Der Ordner enthält die XML-Protokolldatei und das XSL-Stylesheet zum Anzeigen der Protokolldatei.
Bereitstellungsprotokollierung Windows, Linux App Service-Dateisystem Protokolle für die Veröffentlichung von Inhalten in einer App. Die Bereitstellungsprotokollierung erfolgt automatisch, und es gibt keine konfigurierbaren Einstellungen für die Bereitstellungsprotokollierung. Sie unterstützt Sie bei der Ermittlung, warum eine Bereitstellung fehlgeschlagen ist. Wenn Sie beispielsweise ein benutzerdefiniertes Bereitstellungsskript verwenden, können Sie die Bereitstellungsprotokollierung nutzen, um festzustellen, warum das Skript fehlschlägt.

Wenn Protokolle im App Service-Dateisystem gespeichert werden, unterliegen sie dem verfügbaren Speicher für Ihr Preisniveau. Weitere Informationen finden Sie unter App Service-Grenzwerte.

Aktivieren der Anwendungsprotokollierung (Windows)

So aktivieren Sie die Anwendungsprotokollierung für Windows-Apps im Azure-Portal:

  1. Wechseln Sie zu Ihrer App, und wählen Sie Überwachung>App-Dienstprotokolle aus.

  2. Aktivieren Sie eine oder beide der folgenden Optionen:

    • Anwendungsprotokollierung (Dateisystem): Diese Option dient temporären Debuggingzwecken. Er deaktiviert sich in 12 Stunden.

    • Anwendungsprotokollierung (Blob): Diese Option ist für die langfristige Protokollierung vorgesehen. Er benötigt einen Blob-Speichercontainer, in den Protokolle geschrieben werden.

      Die Blob-Option enthält zusätzliche Informationen in den Protokollmeldungen, z. B. die ID der Instanz des virtuellen Ursprungscomputers der Protokollnachricht (InstanceId), die Thread-ID (Tid) und einen präziseren Zeitstempel (EventTickCount).

  3. Wählen Sie für "Ebene" die Ebene der zu protokollierenden Details aus. Die folgende Tabelle zeigt die Protokollkategorien der einzelnen Ebenen:

    Ebene Enthaltene Kategorien
    Deaktiviert Keine
    Fehler Fehler, kritisch
    Warnung Warnung, Fehler, kritisch
    Informationen Info, Warnung, Fehler, Kritisch
    Ausführlich Ablaufverfolgung, Debuggen, Info, Warnung, Fehler, Kritisch (alle Kategorien)
  4. Wählen Sie Speichern aus.

Falls Sie Protokolle in Blobs schreiben, gilt die Aufbewahrungsrichtlinie nicht mehr, wenn Sie die App löschen, aber die Protokolle in den Blobs beibehalten. Weitere Informationen finden Sie unter Nach dem Löschen von Ressourcen möglicherweise anfallende Kosten.

Zurzeit können nur .NET-Anwendungsprotokolle in den Blobspeicher geschrieben werden. Java-, PHP-, Node.js- und Python-Anwendungsprotokolle können nur ohne Codeänderungen im App Service-Dateisystem gespeichert werden, um Protokolle in externen Speicher zu schreiben.

Wenn Sie die Zugriffstasten Ihres Speicherkontos neu generieren, müssen Sie die entsprechende Protokollierungskonfiguration zurücksetzen, um die aktualisierten Zugriffstasten zu verwenden:

  1. Legen Sie auf der Registerkarte " Konfigurieren " das entsprechende Protokollierungsfeature auf "Aus" fest. Speichern Sie die Einstellungen.

  2. Aktivieren Sie die Protokollierung im Blob des Speicherkontos erneut. Speichern Sie die Einstellungen.

Aktivieren der Anwendungsprotokollierung (Linux oder Container)

So aktivieren Sie die Anwendungsprotokollierung für Linux-Apps oder benutzerdefinierte Container im Azure-Portal:

  1. Wechseln Sie zu Ihrer App, und wählen Sie Überwachung>App-Dienstprotokolle aus.

  2. Wählen Sie unter Anwendungsprotokollierung die Option Dateisystem aus.

  3. Geben Sie unter Kontingent (MB) das Datenträgerkontingent für die Anwendungsprotokolle an.

  4. Legen Sie im Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, um die Protokolle beizubehalten.

  5. Wählen Sie Speichern aus.

Aktivieren der Webserverprotokollierung

So aktivieren Sie die Webserverprotokollierung für Windows-Apps im Azure-Portal:

  1. Wechseln Sie zu Ihrer App, und wählen Sie Überwachung>App-Dienstprotokolle aus.

  2. Wählen Sie für die Webserverprotokollierung"Speicher " aus, um Protokolle im BLOB-Speicher zu speichern, oder wählen Sie "Dateisystem" aus, um Protokolle im App Service-Dateisystem zu speichern.

  3. Legen Sie im Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, um die Protokolle beizubehalten.

  4. Wählen Sie Speichern aus.

Falls Sie Protokolle in Blobs schreiben, gilt die Aufbewahrungsrichtlinie nicht mehr, wenn Sie die App löschen, aber die Protokolle in den Blobs beibehalten. Weitere Informationen finden Sie unter Nach dem Löschen von Ressourcen möglicherweise anfallende Kosten.

Wenn Sie die Zugriffsschlüssel Ihres Speicherkontos erneuern, müssen Sie die entsprechende Protokollierungskonfiguration aktualisieren, um die aktualisierten Schlüssel zu verwenden.

  1. Legen Sie auf der Registerkarte " Konfigurieren " das entsprechende Protokollierungsfeature auf "Aus" fest. Speichern Sie die Einstellungen.

  2. Aktivieren Sie die Protokollierung im Blob des Speicherkontos erneut. Speichern Sie die Einstellungen.

Protokollieren ausführlicher Fehler

So speichern Sie die Fehlerseite oder Fehleranforderungsablaufverfolgungen für Windows-Apps im Azure-Portal:

  1. Wechseln Sie zu Ihrer App, und wählen Sie Überwachung>App-Dienstprotokolle aus.

  2. Wählen Sie unter Detaillierte Fehlermeldungen oder Fehlgeschlagene Anforderungsablaufverfolgung die Option Ein aus.

  3. Wählen Sie Speichern aus.

Beide Typen von Protokollen werden im App Service-Dateisystem gespeichert. Es behält bis zu 50 Fehler (Dateien oder Ordner) bei. Wenn die Anzahl der HTML-Dateien 50 überschreitet, löscht App Service die ältesten Fehlerdateien.

Die Ablaufverfolgung für Anforderungsfehler erfasst standardmäßig ein Protokoll der Anforderungen, die mit HTTP-Statuscodes zwischen 400 und 600 fehlgeschlagen sind. Um benutzerdefinierte Regeln anzugeben, überschreiben Sie den <traceFailedRequests> Abschnitt in der Web.config Datei.

Hinzufügen von Protokollmeldungen im Code

Im Anwendungscode können Sie die üblichen Protokollierungseinrichtungen verwenden, um Protokollnachrichten an die Anwendungsprotokolle zu senden. Zum Beispiel:

Streaming von Protokollen

Aktivieren Sie vor dem Streamen von Protokollen in Echtzeit den gewünschten Protokolltyp. App Service streamt alle Informationen, die in die Konsolenausgabe oder Dateien geschrieben wurden, die auf .txt, .log oder .htm enden und im Verzeichnis /home/LogFiles (D:\home\LogFiles) gespeichert sind.

Hinweis

Einige Arten von Protokollierungspuffern schreiben in die Protokolldatei, was dazu führen kann, dass Ereignisse in der falschen Reihenfolge im Datenstrom erscheinen. Beispielsweise kann ein Anwendungsprotokolleintrag, der auftritt, wenn ein Benutzer eine Seite besucht, im Stream vor dem entsprechenden HTTP-Protokolleintrag für die Seitenanforderung angezeigt werden.

Azure-Portal

Um Protokolle im Azure-Portal zu streamen, wechseln Sie zu Ihrer App, und wählen Sie den> aus.

Cloud Shell

Verwenden Sie den folgenden Befehl, um Protokolle live in Azure Cloud Shell zu streamen.

Wichtig

Dieser Befehl funktioniert möglicherweise nicht mit Web-Apps, die in einem Linux-basierten App Service-Plan gehostet werden.

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

Verwenden Sie den --provider Parameter, um bestimmte Protokolltypen wie HTTP zu filtern. Zum Beispiel:

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

Lokales Terminal

Um Protokolle in der lokalen Konsole zu streamen, installieren Sie die Azure CLI , und melden Sie sich bei Ihrem Konto an. Nachdem Sie angemeldet sind, folgen Sie den Anweisungen für Cloud Shell.

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. Weitere Informationen finden Sie unter Microsoft-Clienttools für die Arbeit mit Azure Storage.

Für Protokolle, die im App Service-Dateisystem gespeichert sind, greifen Sie mithilfe des Kudu-Moduls darauf zu.

  1. Öffnen Sie Ihre App im Azure-Portal, und wählen Sie Entwicklungstools>Erweiterte Tools aus, dann wählen Sie Öffnen.
  2. Wählen Sie in Kudu die Option Tools>Diagnoseabbild aus.

Bei Linux oder benutzerdefinierten Containern 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 /home/LogFiles Verzeichnisses. Bereitstellungsprotokolle werden unter /site/deployments/ gespeichert.

Für Windows-Apps enthält die ZIP-Datei den Inhalt des D:\Home\LogFiles Verzeichnisses im App Service-Dateisystem. Sie hat folgende Struktur:

Protokolltyp Verzeichnis Beschreibung
Anwendungsprotokoll /LogFiles/Application/ Enthält mindestens eine Textdatei. Das Format der Protokollnachrichten hängt vom verwendeten Protokollierungsanbieter ab.
Ablaufverfolgung für Anforderungsfehler /LogFiles/W3SVC#########/ Enthält XML-Dateien und eine XSL-Datei. Sie können die formatierten XML-Dateien im Browser anzeigen.
Detailliertes Fehlerprotokoll /LogFiles/DetailedErrors/ Enthält HTM-Fehlerdateien. Sie können die HTM-Dateien im Browser anzeigen.

Eine andere Möglichkeit zum Anzeigen der Ablaufverfolgungen für fehlerhafte Anforderungen besteht darin, im Portal zur Seite Ihrer App zu navigieren. Wählen Sie im linken Menü " Diagnostizieren" aus, und lösen Sie Probleme. Suchen Sie nach Ablaufverfolgungsprotokolle für Anforderungsfehler, und wählen Sie dann das Symbol aus, um die gewünschte Ablaufverfolgung zu durchsuchen und anzuzeigen.
Webserver-Protokoll /LogFiles/http/RawLogs/ Enthält Textdateien, die mithilfe des erweiterten W3C-Protokolldateiformats formatiert sind. Sie können diese Dateien mithilfe eines Text-Editors oder eines Tools wie Log Parser lesen.

Der App-Dienst unterstützt die Felder s-computername, s-ip und cs-version nicht.
Bereitstellungsprotokoll /LogFiles/Git/ und /deployments/ Enthält Protokolle, die von den internen Bereitstellungsprozessen generiert werden, sowie Protokolle für Git-Bereitstellungen.

Senden von Protokollen an Azure Monitor

Mit der Azure Monitor-Integration können Sie Diagnoseeinstellungen erstellen , um Protokolle an Speicherkonten, Event Hubs und Log Analytics-Arbeitsbereiche zu senden. Wenn Sie eine Diagnoseeinstellung hinzufügen, fügt App Service Ihrer App App-Einstellungen hinzu, wodurch ein App-Neustart ausgelöst wird.

Screenshot der Auswahl zum Anzeigen von Diagnoseeinstellungen und Hinzufügen einer Diagnoseeinstellung.

Unterstützte Protokolltypen

Eine Liste der unterstützten Protokolltypen und deren Beschreibungen finden Sie in Unterstützte Ressourcenprotokollen für Microsoft.Web.

Überlegungen zum Netzwerk

Informationen zu Einschränkungen für Diagnoseeinstellungen finden Sie unter "Zielgrenzwerte".

Verwandte Inhalte