Teilen über


Aktivieren der Diagnoseprotokollierung für Apps in Azure App Service

Hinweis

Ab dem 1. Juni 2024 haben alle neu erstellten App Service-Apps die Möglichkeit, einen eindeutigen Standardhostnamen mit der Namenskonvention <app-name>-<random-hash>.<region>.azurewebsites.net zu erstellen. Vorhandene App-Namen bleiben unverändert.

Beispiel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Ausführlichere Informationen finden Sie unter Eindeutiger Standardhostname für App Service-Ressourcen.

In diesem Video wird gezeigt, wie Sie die Diagnoseprotokollierung für Apps aktivieren.

Die Schritte im Video werden auch in den folgenden Abschnitten beschrieben.

Überblick

Azure bietet integrierte Diagnosefunktionen zur Unterstützung beim Debuggen einer App Service-App. In diesem Artikel erfahren Sie, wie Sie die Diagnoseprotokollierung aktivieren und Ihrer Anwendung Instrumentierung hinzufügen und wie Sie die von Azure protokollierten Informationen abrufen.

In diesem Artikel werden das Azure-Portal und die Azure-Befehlszeilenschnittstelle (Azure CLI) verwendet, um mit Diagnoseprotokollen zu arbeiten. Informationen zum Arbeiten mit Diagnoseprotokollen in Visual Studio finden Sie unter Problembehandlung von Azure in Visual Studio.

Hinweis

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

type Plattform Protokollspeicherort 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) . Sie können auswählen, wie ausführlich die Protokollierung erfolgen soll, indem Sie den Schweregrad beim Aktivieren der Anwendungsprotokollierung festlegen.
Webserverprotokollierung Windows App Service-Dateisystem oder Azure Storage-Blobs Unformatierte HTTP-Anforderungsdaten im erweiterten W3C-Protokolldateiformat. Jede Protokollmeldung enthält Daten, etwa die HTTP-Methode, den Ressourcen-URI, die Client-IP, den Clientport, den Benutzer-Agent, den Antwortcode usw.
Detaillierte Fehlermeldungen Windows App Service-Dateisystem Kopien der HTM-Fehlerseiten, die an den Clientbrowser gesendet wurden. 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. Die Seite kann Informationen enthalten, mit deren Hilfe sich bestimmen lässt, warum der Server den Fehlercode zurückgegeben hat.
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. 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 zur Veröffentlichung von Inhalten für eine App. 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 sie im App Service-Dateisystem gespeichert werden, gilt für Protokolle der verfügbare Speicher für Ihren Tarif (siehe App Service-Grenzwerte).

Hinweis

App Service bietet ein dediziertes, interaktives Diagnosetool, das Sie bei der Problembehandlung Ihrer Anwendung unterstützt. Weitere Informationen hierzu finden Sie unter Azure App Service-Pläne – Diagnoseübersicht.

Außerdem können Sie andere Azure-Dienste verwenden, um die Protokollierungs- und Überwachungsfunktionen Ihrer App zu verbessern, z.B. Azure Monitor.

Aktivieren der Anwendungsprotokollierung (Windows)

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

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. Die Option Blob enthält auch zusätzliche Informationen in den Protokollmeldungen, z.B. die ID der ursprünglichen VM-Instanz der Protokollmeldung (InstanceId), die Thread-ID (Tid) und einen genaueren Zeitstempel (EventTickCount).

Hinweis

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

Wenn Sie den Zugriffsschlüssel für Ihr Speicherkonto neu generieren, müssen Sie außerdem die jeweilige Protokollierungskonfiguration zur Verwendung der aktualisierten Zugriffsschlüssel zurücksetzen. Gehen Sie dazu folgendermaßen vor:

  1. Stellen Sie auf der Registerkarte Konfigurieren das jeweilige Protokollierungsfeature auf Aus. Speichern Sie die Einstellungen.
  2. Aktivieren Sie die Protokollierung im Speicherkontoblob erneut. Speichern Sie die Einstellungen.

Wählen Sie die Ebene oder die zu protokollierende Detailebene aus. Die folgende Tabelle zeigt die Protokollkategorien der einzelnen Ebenen:

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)

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

Hinweis

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.

Aktivieren der Anwendungsprotokollierung (Linux/Container)

Um Anwendungsprotokollierung für Linux-Apps oder benutzerdefinierte Container im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App und wählen App Service-Protokolle aus.

Wählen Sie unter Anwendungsprotokollierung die Option Dateisystem aus.

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.

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

Aktivieren der Webserverprotokollierung

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

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.

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

Hinweis

Wenn Sie den Zugriffsschlüssel für Ihr Speicherkonto neu generieren, müssen Sie die jeweilige Protokollierungskonfiguration zur Verwendung der aktualisierten Schlüssel zurücksetzen. Gehen Sie dazu folgendermaßen vor:

  1. Stellen Sie auf der Registerkarte Konfigurieren das jeweilige Protokollierungsfeature auf Aus. Speichern Sie die Einstellungen.
  2. Aktivieren Sie die Protokollierung im Speicherkontoblob erneut. Speichern Sie die Einstellungen.

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

Hinweis

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.

Protokollieren ausführlicher Fehler

Um die Fehlerseite oder die Ablaufverfolgung fehlerhafter Anforderungen für Windows-Apps im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App und wählen App Service-Protokolle aus.

Wählen Sie Ausführliche Fehlerprotokollierung oderAblaufverfolgung fehlerhafter Anforderungen aus, wählen Sie Ein und anschließend Speichern aus.

Beide Typen von Protokollen werden im App Service-Dateisystem gespeichert. Bis zu 50 Fehler (Dateien oder Ordner) werden aufbewahrt. Sind mehr als 50 HTML-Dateien vorhanden, werden die ältesten Fehlerdateien automatisch gelöscht.

Von der Ablaufverfolgung für Anforderungsfehler wird standardmäßig ein Protokoll von Anforderungen erfasst, bei denen Fehler mit HTTP-Statuscodes zwischen 400 und 600 aufgetreten sind. Wenn Sie benutzerdefinierte Regeln angeben möchten, können Sie den Abschnitt <traceFailedRequests> in der Datei web.config überschreiben.

Hinzufügen von Protokollmeldungen im Code

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

Streaming von Protokollen

Aktivieren Sie vor dem Streamen von Protokollen in Echtzeit den gewünschten Protokolltyp. Alle Informationen, die in der Konsolenausgabe oder in Dateien mit der Erweiterung „.txt“, „.log“ oder „.htm“ im Verzeichnis /home/LogFiles (D:\home\LogFiles) gespeichert werden, werden von App Service gestreamt.

Hinweis

Einige Typen von Protokollierungen nutzen Puffer beim Schreiben in die Protokolldatei. Das kann dazu führen, dass Ereignisse in der falschen Reihenfolge im Datenstrom angezeigt werden. Beispielsweise kann ein Anwendungsprotokolleintrag für den Besuch einer Seite im Stream vor dem zugehörigen HTTP-Protokolleintrag für die Seitenanforderung angezeigt werden.

Im Azure-Portal

Navigieren Sie zum Streamen von Protokollen im Azure-Portal zu Ihrer App, und wählen Sie Protokollstream aus.

In Cloud Shell

Verwenden Sie zum Livestreamen von Protokollen in Cloud Shell den folgenden Befehl:

Wichtig

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

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

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

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

Im lokalen Terminal

Zum Streamen von Protokollen in der lokalen Konsole 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 Azure Storage-Clienttools.

Bei Protokollen, die im App Service-Dateisystem gespeichert sind, besteht die einfachste Zugriffsmöglichkeit auf die Dateien darin, die ZIP-Datei im Browser unter der folgenden Adresse herunterzuladen:

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

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

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

Protokolltyp Verzeichnis BESCHREIBUNG
Anwendungsprotokolle /LogFiles/Application/ Enthält mindestens eine Textdatei. Das Format der Protokollmeldungen 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.
Detaillierte Fehlerprotokolle /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 Anforderungsfehler besteht darin, im Portal zur Seite Ihrer App zu navigieren. Wählen Sie im linken Menü Diagnose und Problembehandlung aus, und suchen Sie nach Ablaufverfolgungsprotokolle für Anforderungsfehler. Klicken Sie dann auf das Symbol, um die gewünschte Ablaufverfolgung zu durchsuchen und anzuzeigen.
Webserverprotokolle /LogFiles/http/RawLogs/ Enthält Textdateien im erweiterten W3C-Protokolldateiformat. Sie können diese Dateien mit einem Text-Editor oder einem Hilfsprogramm wie Log Parser lesen.
App Service unterstützt die Felder s-computername, s-ip oder cs-version nicht.
Bereitstellungsprotokolle /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

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

Diagnoseeinstellungen

Unterstützte Protokolltypen

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

Überlegungen zum Netzwerkbetrieb

Informationen zu den Einschränkungen für die Diagnoseeinstellungen finden Sie in der offiziellen Diagnoseeinstellungsdokumentation zu Zieleinschränkungen.

Nächste Schritte