Aktivieren der Diagnoseprotokollierung für Apps in Azure App ServiceEnable diagnostics logging for apps in Azure App Service

ÜbersichtOverview

Azure bietet integrierte Diagnosefunktionen zur Unterstützung beim Debuggen einer App Service-App.Azure provides built-in diagnostics to assist with debugging an 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 this article, you learn how to enable diagnostic logging and add instrumentation to your application, as well as how to access the information logged by Azure.

In diesem Artikel werden das Azure-Portal und die Azure-Befehlszeilenschnittstelle (Azure CLI) verwendet, um mit Diagnoseprotokollen zu arbeiten.This article uses the Azure portal and Azure CLI to work with diagnostic logs. Informationen zum Arbeiten mit Diagnoseprotokollen in Visual Studio finden Sie unter Problembehandlung von Azure in Visual Studio.For information on working with diagnostic logs using Visual Studio, see Troubleshooting Azure in Visual Studio.

Hinweis

Zusätzlich zu den Protokollierungsanweisungen in diesem Artikel gibt es eine neue, integrierte Protokollierungsfunktion mit Azure Monitor.In addition to the logging instructions in this article, there's new, integrated logging capability with Azure Monitoring. Weitere Informationen zu dieser Funktion finden Sie im Abschnitt Senden von Protokollen an Azure Monitor (Vorschauversion).You'll find more on this capability in the Send logs to Azure Monitor (preview) section.

typeType PlattformPlatform StandortLocation BESCHREIBUNGDescription
AnwendungsprotokollierungApplication logging Windows, LinuxWindows, Linux App Service-Dateisystem und/oder Azure Storage-BlobsApp Service file system and/or Azure Storage blobs Protokolliert Meldungen, die von Ihrem Anwendungscode generiert werden.Logs messages generated by your application code. Die Meldungen können durch das von Ihnen ausgewählte Webframework oder direkt aus Ihrem Anwendungscode mithilfe des Standardprotokollierungsmusters Ihrer Sprache generiert werden.The messages can be generated by the web framework you choose, or from your application code directly using the standard logging pattern of your language. Jede Meldung wird einer der folgenden Kategorien zugewiesen: Critical (Kritisch) , Error (Fehler) , Warning (Warnung) , Info (Information) , Debug (Debuggen) und Trace (Ablaufverfolgung) .Each message is assigned one of the following categories: Critical, Error, Warning, Info, Debug, and Trace. Sie können auswählen, wie ausführlich die Protokollierung erfolgen soll, indem Sie den Schweregrad beim Aktivieren der Anwendungsprotokollierung festlegen.You can select how verbose you want the logging to be by setting the severity level when you enable application logging.
WebserverprotokollierungWeb server logging WindowsWindows App Service-Dateisystem oder Azure Storage-BlobsApp Service file system or Azure Storage blobs Unformatierte HTTP-Anforderungsdaten im erweiterten W3C-Protokolldateiformat.Raw HTTP request data in the W3C extended log file format. Jede Protokollmeldung enthält Daten, etwa die HTTP-Methode, den Ressourcen-URI, die Client-IP, den Clientport, den Benutzer-Agent, den Antwortcode usw.Each log message includes data such as the HTTP method, resource URI, client IP, client port, user agent, response code, and so on.
Detaillierte FehlermeldungenDetailed Error Messages WindowsWindows App Service-DateisystemApp Service file system Kopien der HTM-Fehlerseiten, die an den Clientbrowser gesendet wurden.Copies of the .htm error pages that would have been sent to the client browser. 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.For security reasons, detailed error pages shouldn't be sent to clients in production, but App Service can save the error page each time an application error occurs that has HTTP code 400 or greater. Die Seite kann Informationen enthalten, mit deren Hilfe sich bestimmen lässt, warum der Server den Fehlercode zurückgegeben hat.The page may contain information that can help determine why the server returns the error code.
Ablaufverfolgung fehlgeschlagener AnforderungenFailed request tracing WindowsWindows App Service-DateisystemApp Service file system 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.Detailed tracing information on failed requests, including a trace of the IIS components used to process the request and the time taken in each component. Dies ist hilfreich, wenn Sie die Leistung der Website verbessern oder einen bestimmten HTTP-Fehler isolieren möchten.It's useful if you want to improve site performance or isolate a specific HTTP error. 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.One folder is generated for each failed request, which contains the XML log file, and the XSL stylesheet to view the log file with.
BereitstellungsprotokollierungDeployment logging Windows, LinuxWindows, Linux App Service-DateisystemApp Service file system Protokolle zur Veröffentlichung von Inhalten für eine App.Logs for when you publish content to an app. Bereitstellungsprotokollierung erfolgt automatisch, und es gibt keine konfigurierbaren Einstellungen für die Bereitstellungsprotokollierung.Deployment logging happens automatically and there are no configurable settings for deployment logging. Sie unterstützt Sie bei der Ermittlung, warum eine Bereitstellung fehlgeschlagen ist.It helps you determine why a deployment failed. Wenn Sie beispielsweise ein benutzerdefiniertes Bereitstellungsskript verwenden, können Sie die Bereitstellungsprotokollierung nutzen, um festzustellen, warum das Skript fehlschlägt.For example, if you use a custom deployment script, you might use deployment logging to determine why the script is failing.

Hinweis

App Service bietet ein dediziertes, interaktives Diagnosetool, das Sie bei der Problembehandlung Ihrer Anwendung unterstützt.App Service provides a dedicated, interactive diagnostics tool to help you troubleshoot your application. Weitere Informationen hierzu finden Sie unter Azure App Service-Pläne – Diagnoseübersicht.For more information, see Azure App Service diagnostics overview.

Außerdem können Sie andere Azure-Dienste verwenden, um die Protokollierungs- und Überwachungsfunktionen Ihrer App zu verbessern, z.B. Azure Monitor.In addition, you can use other Azure services to improve the logging and monitoring capabilities of your app, such as Azure Monitor.

Aktivieren der Anwendungsprotokollierung (Windows)Enable application logging (Windows)

Hinweis

Bei der Anwendungsprotokollierung für Blob Storage können nur Speicherkonten in derselben Region wie App Service verwendet werden.Application logging for blob storage can only use storage accounts in the same region as the App Service

Um Anwendungsprotokollierung für Windows-Apps im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App und wählen App Service-Protokolle aus.To enable application logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

Wählen Sie für Anwendungsprotokollierung (Dateisystem) oder Anwendungsprotokollierung (Blob) oder beides die Option Ein aus.Select On for either Application Logging (Filesystem) or Application Logging (Blob), or both.

Die Option Dateisystem ist für das temporäre Debuggen bestimmt und schaltet sich nach 12 Stunden aus.The Filesystem option is for temporary debugging purposes, and turns itself off in 12 hours. Die Option Blob ist für die langfristige Protokollierung vorgesehen und benötigt einen Blobspeichercontainer, in den Protokolle geschrieben werden.The Blob option is for long-term logging, and needs a blob storage container to write logs to. 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).The Blob option also includes additional information in the log messages, such as the ID of the origin VM instance of the log message (InstanceId), thread ID (Tid), and a more granular timestamp (EventTickCount).

Hinweis

Zurzeit können nur .NET-Anwendungsprotokolle in den Blobspeicher geschrieben werden.Currently only .NET application logs can be written to the blob storage. Anwendungsprotokoll für Java, PHP, Node.js, Python können nur im App Service-Dateisystem gespeichert werden (ohne Codeänderungen, um Protokolle in externen Speicher zu schreiben).Java, PHP, Node.js, Python application logs can only be stored on the App Service file system (without code modifications to write logs to external storage).

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.Also, if you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated access keys. Gehen Sie dazu folgendermaßen vor:To do this:

  1. Stellen Sie auf der Registerkarte Konfigurieren das jeweilige Protokollierungsfeature auf Aus.In the Configure tab, set the respective logging feature to Off. Speichern Sie die Einstellungen.Save your setting.
  2. Aktivieren Sie die Protokollierung im Speicherkontoblob erneut.Enable logging to the storage account blob again. Speichern Sie die Einstellungen.Save your setting.

Wählen Sie die Ebene oder die zu protokollierende Detailebene aus.Select the Level, or the level of details to log. Die folgende Tabelle zeigt die Protokollkategorien der einzelnen Ebenen:The following table shows the log categories included in each level:

EbeneLevel Enthaltene KategorienIncluded categories
DisabledDisabled KeineNone
FehlerError Fehler, KritischError, Critical
WarningWarning Warnung, Fehler, KritischWarning, Error, Critical
InformationenInformation Info, Warnung, Fehler, KritischInfo, Warning, Error, Critical
AusführlichVerbose Ablaufverfolgung, Debugging, Info, Warnung, Fehler, Kritisch (alle Kategorien)Trace, Debug, Info, Warning, Error, Critical (all categories)

Wenn Sie fertig sind, wählen Sie Speichern aus.When finished, select Save.

Aktivieren der Anwendungsprotokollierung (Linux/Container)Enable application logging (Linux/Container)

Um Anwendungsprotokollierung für Linux-Apps oder benutzerdefinierte Container-Apps im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App und wählen App Service-Protokolle aus.To enable application logging for Linux apps or custom container apps in the Azure portal, navigate to your app and select App Service logs.

Wählen Sie unter Anwendungsprotokollierung die Option Dateisystem aus.In Application logging, select File System.

Geben Sie unter Kontingent (MB) das Datenträgerkontingent für die Anwendungsprotokolle an.In Quota (MB), specify the disk quota for the application logs. Legen Sie unter Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, die die Protokolle aufbewahrt werden sollen.In Retention Period (Days), set the number of days the logs should be retained.

Wenn Sie fertig sind, wählen Sie Speichern aus.When finished, select Save.

Aktivieren der WebserverprotokollierungEnable web server logging

Um Webserverprotokollierung für Windows-Apps im Azure-Portal zu aktivieren, navigieren Sie zu Ihrer App und wählen App Service-Protokolle aus.To enable web server logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

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.For Web server logging, select Storage to store logs on blob storage, or File System to store logs on the App Service file system.

Legen Sie unter Aufbewahrungszeitraum (Tage) die Anzahl der Tage fest, die die Protokolle aufbewahrt werden sollen.In Retention Period (Days), set the number of days the logs should be retained.

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.If you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated keys. Gehen Sie dazu folgendermaßen vor:To do this:

  1. Stellen Sie auf der Registerkarte Konfigurieren das jeweilige Protokollierungsfeature auf Aus.In the Configure tab, set the respective logging feature to Off. Speichern Sie die Einstellungen.Save your setting.
  2. Aktivieren Sie die Protokollierung im Speicherkontoblob erneut.Enable logging to the storage account blob again. Speichern Sie die Einstellungen.Save your setting.

Wenn Sie fertig sind, wählen Sie Speichern aus.When finished, select Save.

Protokollieren ausführlicher FehlerLog detailed errors

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.To save the error page or failed request tracing for Windows apps in the Azure portal, navigate to your app and select App Service logs.

Wählen Sie Ausführliche Fehlerprotokollierung oder Ablaufverfolgung fehlerhafter Anforderungen aus, wählen Sie Ein aus, und wählen Sie dann Speichern aus.Under Detailed Error Logging or Failed Request Tracing, select On, then select Save.

Beide Typen von Protokollen werden im App Service-Dateisystem gespeichert.Both types of logs are stored in the App Service file system. Bis zu 50 Fehler (Dateien/Ordner) werden aufbewahrt.Up to 50 errors (files/folders) are retained. Wenn die Anzahl der HTML-Dateien 50 überschreitet, werden die 26 ältesten Fehler automatisch gelöscht.When the number of HTML files exceed 50, the oldest 26 errors are automatically deleted.

Hinzufügen von Protokollmeldungen im CodeAdd log messages in code

In Ihrem Anwendungscode verwenden Sie die üblichen Protokollierungsfunktionen, um Protokollmeldungen an die Anwendungsprotokolle zu senden.In your application code, you use the usual logging facilities to send log messages to the application logs. Beispiel:For example:

Streaming von ProtokollenStream logs

Aktivieren Sie vor dem Streamen von Protokollen in Echtzeit den gewünschten Protokolltyp.Before you stream logs in real time, enable the log type that you want. Alle Informationen, die in Dateien mit der Erweiterung TXT, LOG oder HTM im Verzeichnis /LogFiles (D:/home/logfiles) gespeichert werden, werden von App Service gestreamt.Any information written to files ending in .txt, .log, or .htm that are stored in the /LogFiles directory (d:/home/logfiles) is streamed by App Service.

Hinweis

Einige Protokolltypen puffern die Schreibvorgänge in die Protokolldatei, was zu Störereignissen im Stream führen kann.Some types of logging buffer write to the log file, which can result in out of order events in the stream. Beispielsweise kann ein Anwendungsprotokolleintrag für den Besuch einer Seite im Stream vor dem zugehörigen HTTP-Protokolleintrag für die Seitenanforderung angezeigt werden.For example, an application log entry that occurs when a user visits a page may be displayed in the stream before the corresponding HTTP log entry for the page request.

Im Azure-PortalIn Azure portal

Navigieren Sie zum Streamen von Protokollen im Azure-Portal zu Ihrer App, und wählen Sie Protokollstream aus.To stream logs in the Azure portal, navigate to your app and select Log stream.

In Cloud ShellIn Cloud Shell

Verwenden Sie zum Livestreamen von Protokollen in Cloud Shell den folgenden Befehl:To stream logs live in Cloud Shell, use the following command:

Wichtig

Dieser Befehl funktioniert möglicherweise nicht mit Web-Apps, die in einem App Service-Plan für Linux gehostet werden.This command may not work with web apps hosted in a Linux app service plan.

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

Um bestimmte Protokolltypen wie HTTP zu filtern, verwenden Sie den Parameter --Provider.To filter specific log types, such as HTTP, use the --Provider parameter. Beispiel:For example:

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

In lokalem TerminalIn local terminal

Zum Streamen von Protokollen in der lokalen Konsole installieren Sie die Azure CLI, und melden Sie sich bei Ihrem Konto an.To stream logs in the local console, install Azure CLI and sign in to your account. Nachdem Sie sich angemeldet haben, befolgen Sie die Anweisungen für Cloud Shell.Once signed in, followed the instructions for Cloud Shell

Zugreifen auf ProtokolldateienAccess log files

Wenn Sie die Option „Azure Storage-Blob“ für einen Protokolltyp konfigurieren, benötigen Sie ein Clienttool, das mit Azure Storage funktioniert.If you configure the Azure Storage blobs option for a log type, you need a client tool that works with Azure Storage. Weitere Informationen finden Sie unter Azure Storage-Clienttools.For more information, see Azure Storage Client Tools.

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:For logs stored in the App Service file system, the easiest way is to download the ZIP file in the browser at:

  • Linux-/Container-Apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zipLinux/container apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows-Apps: https://<app-name>.scm.azurewebsites.net/api/dumpWindows 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.For Linux/container apps, the ZIP file contains console output logs for both the docker host and the docker container. Für eine horizontal hochskalierte App enthält die ZIP-Datei einen Satz von Protokollen für jede Instanz.For a scaled-out app, the ZIP file contains one set of logs for each instance. Im App Service-Dateisystem sind diese Protokolldateien der Inhalt des Verzeichnisses /home/LogFiles.In the App Service file system, these log files are the contents of the /home/LogFiles directory.

Für Windows-Apps enthält die ZIP-Datei den Inhalt des Verzeichnisses D:\Home\LogFiles im App Service- Dateisystem.For Windows apps, the ZIP file contains the contents of the D:\Home\LogFiles directory in the App Service file system. Sie hat folgende Struktur:It has the following structure:

ProtokolltypLog type VerzeichnisDirectory BESCHREIBUNGDescription
AnwendungsprotokolleApplication logs /LogFiles/Application//LogFiles/Application/ Enthält mindestens eine Textdatei.Contains one or more text files. Das Format der Protokollmeldungen hängt vom verwendeten Protokollierungsanbieter ab.The format of the log messages depends on the logging provider you use.
Ablaufverfolgung für AnforderungsfehlerFailed Request Traces /LogFiles/W3SVC#########//LogFiles/W3SVC#########/ Enthält XML-Dateien und eine XSL-Datei.Contains XML files, and an XSL file. Sie können die formatierten XML-Dateien im Browser anzeigen.You can view the formatted XML files in the browser.
Detaillierte FehlerprotokolleDetailed Error Logs /LogFiles/DetailedErrors//LogFiles/DetailedErrors/ Enthält HTM-Fehlerdateien.Contains HTM error files. Sie können die HTM-Dateien im Browser anzeigen.You can view the HTM files in the browser.
Eine andere Möglichkeit zum Anzeigen der Ablaufverfolgungen für Anforderungsfehler besteht darin, im Portal zur Seite Ihrer App zu navigieren.Another way to view the failed request traces is to navigate to your app page in the portal. 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.From the left menu, select Diagnose and solve problems, then search for Failed Request Tracing Logs, then click the icon to browse and view the trace you want.
WebserverprotokolleWeb Server Logs /LogFiles/http/RawLogs//LogFiles/http/RawLogs/ Enthält Textdateien im erweiterten W3C-Protokolldateiformat.Contains text files formatted using the W3C extended log file format. Diese Informationen können in einem Text-Editor oder mit einem Hilfsprogramm wie Log Parser gelesen werden.This information can be read using a text editor or a utility like Log Parser.
App Service unterstützt die Felder s-computername, s-ip oder cs-version nicht.App Service doesn't support the s-computername, s-ip, or cs-version fields.
BereitstellungsprotokolleDeployment logs /LogFiles/Git/ und /deployments//LogFiles/Git/ and /deployments/ Enthält Protokolle, die von den internen Bereitstellungsprozessen generiert werden, sowie Protokolle für Git-Bereitstellungen.Contain logs generated by the internal deployment processes, as well as logs for Git deployments.

Senden von Protokollen an Azure Monitor (Vorschauversion)Send logs to Azure Monitor (preview)

Mit der neuen Azure Monitor-Integration können Sie Diagnoseeinstellungen (Vorschau) erstellen, um Protokolle an Speicherkonten, Event Hubs und Log Analytics zu senden.With the new Azure Monitor integration, you can create Diagnostic Settings (preview) to send logs to Storage Accounts, Event Hubs and Log Analytics.

Diagnoseeinstellungen (Vorschau)Diagnostic Settings (preview)

Unterstützte ProtokolltypenSupported log types

In der folgenden Tabelle werden die unterstützten Protokolltypen und Beschreibungen dieser aufgeführt:The following table shows the supported log types and descriptions:

ProtokolltypLog type WindowsWindows Windows-ContainerWindows Container LinuxLinux Linux-ContainerLinux Container BESCHREIBUNGDescription
AppServiceConsoleLogsAppServiceConsoleLogs Java SE & TomcatJava SE & Tomcat JaYes JaYes JaYes Standardausgabe und StandardfehlerStandard output and standard error
AppServiceHTTPLogsAppServiceHTTPLogs JaYes JaYes JaYes JaYes WebserverprotokolleWeb server logs
AppServiceEnvironmentPlatformLogsAppServiceEnvironmentPlatformLogs JaYes N/A JaYes JaYes App Service-Umgebung: Skalierung, Konfigurationsänderungen und StatusprotokolleApp Service Environment: scaling, configuration changes, and status logs
AppServiceAuditLogsAppServiceAuditLogs JaYes JaYes JaYes JaYes Anmeldeaktivität per FTP und KuduLogin activity via FTP and Kudu
AppServiceFileAuditLogsAppServiceFileAuditLogs JaYes JaYes Wird noch angekündigtTBA Wird noch angekündigtTBA Dateiänderungen am Websiteinhalt; nur für Premium-Tarif und höher verfügbarFile changes made to the site content; only available for Premium tier and above
AppServiceAppLogsAppServiceAppLogs ASP.NETASP .NET ASP.NETASP .NET Java SE und Tomcat Blessed Images 1Java SE & Tomcat Blessed Images 1 Java SE und Tomcat Blessed Images 1Java SE & Tomcat Blessed Images 1 AnwendungsprotokolleApplication logs
AppServiceIPSecAuditLogsAppServiceIPSecAuditLogs JaYes JaYes JaYes JaYes Anforderungen von IP-RegelnRequests from IP Rules
AppServicePlatformLogsAppServicePlatformLogs Wird noch angekündigtTBA JaYes JaYes JaYes ContainervorgangsprotokolleContainer operation logs
AppServiceAntivirusScanAuditLogsAppServiceAntivirusScanAuditLogs JaYes JaYes JaYes JaYes Protokolle für Antivirenscans mithilfe von Microsoft Defender; nur verfügbar für Premium-TarifAnti-virus scan logs using Microsoft Defender; only available for Premium tier

1 Fügen Sie für Java SE-Apps den App-Einstellungen „$WEBSITE_AZMON_PREVIEW_ENABLED“ hinzu, und legen Sie sie auf „1“ oder „true“ fest.1 For Java SE apps, add "$WEBSITE_AZMON_PREVIEW_ENABLED" to the app settings and set it to 1 or to true.

Nächste SchritteNext steps