Azure App Service でのアプリの診断ログの有効化Enable diagnostics logging for apps in Azure App Service

概要Overview

Azure では、組み込みの診断機能により、 App Service アプリのデバッグを容易に行うことができます。Azure provides built-in diagnostics to assist with debugging an App Service app. この記事では、診断ログを有効にしてインストルメンテーションをアプリケーションに追加する方法と、Azure によってログに記録された情報にアクセスする方法について説明します。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.

この記事では、Azure portal と Azure CLI を使用して診断ログを操作します。This article uses the Azure portal and Azure CLI to work with diagnostic logs. Visual Studio で診断ログを使用する方法の詳細については、「 Visual Studio での Azure のトラブルシューティング」を参照してください。For information on working with diagnostic logs using Visual Studio, see Troubleshooting Azure in Visual Studio.

種類Type プラットフォームPlatform LocationLocation 説明Description
アプリケーションのログ記録Application logging Windows、LinuxWindows, Linux App Service ファイル システムおよび Azure Storage BLOBApp Service file system and/or Azure Storage blobs アプリケーションのコードによって生成されたメッセージがログに記録されます。Logs messages generated by your application code. メッセージは、選択した Web フレームワークによって、またはお使いの言語の標準ログ パターンを使用してアプリケーションのコードから直接、生成できます。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. 各メッセージには、次のいずれかのカテゴリが割り当てられます: 重大エラー警告情報デバッグトレースEach message is assigned one of the following categories: Critical, Error, Warning, Info, Debug, and Trace. アプリケーションのログ記録を有効にするときに、重大度レベルを設定することにより、ログ記録の詳細さを指定できます。You can select how verbose you want the logging to be by setting the severity level when you enable application logging.
Web サーバーのログ記録Web server logging WindowsWindows App Service ファイル システムまたは Azure Storage BLOBApp Service file system or Azure Storage blobs W3C 拡張ログ ファイル形式の生 HTTP 要求データ。Raw HTTP request data in the W3C extended log file format. 各ログ メッセージには、HTTP メソッド、リソース URI、クライアント IP、クライアント ポート、ユーザー エージェント、応答コードなどのデータが含まれます。Each log message includes data such as the HTTP method, resource URI, client IP, client port, user agent, response code, and so on.
詳細なエラー ログ記録Detailed error logging WindowsWindows App Service ファイル システムApp Service file system クライアントのブラウザーに送信された .htm エラー ページのコピー。Copies of the .htm error pages that would have been sent to the client browser. セキュリティ上の理由から、詳細なエラー ページを運用環境のクライアントに送信することはできませんが、App Service では、HTTP コード 400 以上のアプリケーション エラーが発生するたびにエラー ページを保存できます。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. ページには、サーバーによってエラー コードが返される理由を特定するのに役立つ情報が記録されている場合があります。The page may contain information that can help determine why the server returns the error code.
失敗した要求トレースFailed request tracing WindowsWindows App Service ファイル システムApp Service file system 要求の処理に使用された IIS コンポーネントのトレースや各コンポーネントにかかった時間など、失敗した要求の詳細なトレース情報。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. これは、サイトのパフォーマンスを向上させたり、特定の HTTP エラーを分離したりする場合に役立ちます。It's useful if you want to improve site performance or isolate a specific HTTP error. 失敗した要求ごとに 1 つのフォルダーが生成され、それには、XML ログ ファイルと、ログ ファイルを表示するための XSL スタイルシートが含まれます。One folder is generated for each failed request, which contains the XML log file, and the XSL stylesheet to view the log file with.
デプロイ ログDeployment logging Windows、LinuxWindows, Linux App Service ファイル システムApp Service file system アプリにコンテンツを発行するときのログ。Logs for when you publish content to an app. デプロイ ログの記録は自動的に行われ、デプロイ ログの構成可能な設定はありません。Deployment logging happens automatically and there are no configurable settings for deployment logging. デプロイが失敗した理由を判断するのに役立ちます。It helps you determine why a deployment failed. たとえば、カスタム デプロイ スクリプトを使用している場合は、デプロイ ログを使用して、スクリプトでエラーが発生する理由を特定できることがあります。For example, if you use a custom deployment script, you might use deployment logging to determine why the script is failing.

注意

App Service では、アプリケーションのトラブルシューティングに役立つ専用の対話型診断ツールが提供されています。App Service provides a dedicated, interactive diagnostics tool to help you troubleshoot your application. 詳細については、「Azure App Service 診断の概要」を参照してください。For more information, see Azure App Service diagnostics overview.

さらに、Azure Monitor などの他の Azure サービスを使用して、アプリのログ記録と監視の機能を向上させることができます。In addition, you can use other Azure services to improve the logging and monitoring capabilities of your app, such as Azure Monitor.

アプリケーションのログ記録を有効にする (Windows)Enable application logging (Windows)

Azure portal で Windows アプリのアプリケーション ログ記録を有効にするには、アプリに移動し、 [App Service ログ] を選択します。To enable application logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

[アプリケーション ログ (ファイル システム)][アプリケーション ログ (Blob)] の一方または両方で、 [オン] を選択します。Select On for either Application Logging (Filesystem) or Application Logging (Blob), or both.

ファイル システム オプションは、一時的なデバッグ用であり、12 時間で自動的にオフになります。The Filesystem option is for temporary debugging purposes, and turns itself off in 12 hours. Blob オプションは、長期的なログ記録用であり、ログを書き込む BLOB ストレージ コンテナーが必要です。The Blob option is for long-term logging, and needs a blob storage container to write logs to. Blob オプションには、ログ メッセージの生成元 VM インスタンスの ID (InstanceId)、スレッド ID (Tid)、さらに細かいタイムスタンプ (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).

注意

現在、Blob Storage には .NET アプリケーションのログのみ書き込むことができます。Currently only .NET application logs can be written to the blob storage. Java、PHP、Node.js、Python のアプリケーション ログは、App Service ファイル システムにのみ保存できます (外部ストレージにログを書き込むためのコードの変更は必要ありません)。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).

また、ストレージ アカウントのアクセス キーを再生成する場合、更新されたキーを使用するように、該当するログ記録の構成を再設定する必要があります。Also, if you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated access keys. これを行うには、次の手順を実行します。To do this:

  1. [構成] タブで、該当するログ機能を [オフ] に設定します。In the Configure tab, set the respective logging feature to Off. 設定を保存します。Save your setting.
  2. ストレージ アカウントの BLOB へのログを再び有効にします。Enable logging to the storage account blob again. 設定を保存します。Save your setting.

ログに記録する詳細さのレベルを選択します。Select the Level, or the level of details to log. 次の表に、各レベルに含まれるログのカテゴリを示します。The following table shows the log categories included in each level:

LevelLevel 含まれるカテゴリIncluded categories
DisabledDisabled なしNone
ErrorError エラー、クリティカルError, Critical
WarningWarning 警告、エラー、クリティカルWarning, Error, Critical
情報Information 情報、警告、エラー、クリティカルInfo, Warning, Error, Critical
VerboseVerbose トレース、デバッグ、情報、警告、エラー、クリティカル (すべてのカテゴリ)Trace, Debug, Info, Warning, Error, Critical (all categories)

終わったら、 [保存] を選択します。When finished, select Save.

アプリケーションのログ記録を有効にする (Linux/コンテナー)Enable application logging (Linux/Container)

Azure portal で Linux アプリまたはカスタム コンテナー アプリのアプリケーション ログ記録を有効にするには、アプリに移動し、 [App Service ログ] を選択します。To enable application logging for Linux apps or custom container apps in the Azure portal, navigate to your app and select App Service logs.

[アプリケーション ログ記録][ファイル システム] を選択します。In Application logging, select File System.

[クォータ (MB)] で、アプリケーション ログのディスク クォータを指定します。In Quota (MB), specify the disk quota for the application logs. [リテンション期間 (日)] で、ログを保持する日数を設定します。In Retention Period (Days), set the number of days the logs should be retained.

終わったら、 [保存] を選択します。When finished, select Save.

Web サーバーのログ記録を有効にするEnable web server logging

Azure portal で Windows アプリの Web サーバー ログ記録を有効にするには、アプリに移動し、 [App Service ログ] を選択します。To enable web server logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

[Web サーバーのログ記録] で、Blob Storage にログを格納する場合は [ストレージ] を選択し、App Service ファイル システムにログを格納する場合は [ファイル システム] を選択します。For Web server logging, select Storage to store logs on blob storage, or File System to store logs on the App Service file system.

[リテンション期間 (日)] で、ログを保持する日数を設定します。In Retention Period (Days), set the number of days the logs should be retained.

注意

ストレージ アカウントのアクセス キーを再生成する場合は、該当するログ構成を更新後のキーを使用するように設定し直す必要があります。If you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated keys. これを行うには、次の手順を実行します。To do this:

  1. [構成] タブで、該当するログ機能を [オフ] に設定します。In the Configure tab, set the respective logging feature to Off. 設定を保存します。Save your setting.
  2. ストレージ アカウントの BLOB へのログを再び有効にします。Enable logging to the storage account blob again. 設定を保存します。Save your setting.

終わったら、 [保存] を選択します。When finished, select Save.

詳細なエラーのログを記録するLog detailed errors

Azure portal で Windows アプリのエラー ページまたは失敗した要求のトレースを保存するには、アプリに移動し、 [App Service ログ] を選択します。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.

[Detailed Error Logging](詳細なエラー ログ記録) または [失敗した要求のトレース] で、 [オン] を選択し、 [保存] を選択します。Under Detailed Error Logging or Failed Request Tracing, select On, then select Save.

どちらの種類のログも、App Service ファイル システムに格納されます。Both types of logs are stored in the App Service file system. 最大 50 件のエラー (ファイル/フォルダー) が保持されます。Up to 50 errors (files/folders) are retained. HTML ファイルの数が 50 を超えた場合、古い順に 26 エラーが自動的に削除されます。When the number of HTML files exceed 50, the oldest 26 errors are automatically deleted.

コードでログ メッセージを追加するAdd log messages in code

アプリケーションのコードでは、通常のログ記録機能を使用して、ログ メッセージをアプリケーション ログに送信します。In your application code, you use the usual logging facilities to send log messages to the application logs. 例:For example:

ログのストリーミングStream logs

ログをリアルタイムでストリーミングする前に、目的のログの種類を有効にします。Before you stream logs in real time, enable the log type that you want. /LogFiles ディレクトリ (d:/home/logfiles) に格納されており、末尾が .txt、.log、.htm のいずれかになっているファイルに書き込まれた情報が、App Service によってストリーミングされます。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.

注意

一部の種類のログ バッファーはログ ファイルに書き込まれるため、ストリーミング中に無効な順序エラーが発生する可能性があります。Some types of logging buffer write to the log file, which can result in out of order events in the stream. たとえば、ユーザーがページにアクセスしたときに発生するアプリケーション ログ エントリは、ページ要求の該当する HTTP ログ エントリより前のストリームに表示されることがあります。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.

Azure PortalIn Azure portal

Azure portal でログをストリーミングするには、アプリに移動し、 [ログ ストリーム] を選択します。To stream logs in the Azure portal, navigate to your app and select Log stream.

Cloud Shell の場合In Cloud Shell

Cloud Shell でログをライブ ストリーミングするには、次のコマンドを使用します。To stream logs live in Cloud Shell, use the following command:

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

特定のイベント (エラーなど) をフィルター処理するには、 -Filter パラメーターを使用します。To filter specific events, such as errors, use the --Filter parameter. 例:For example:

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

特定のログの種類 (HTTP など) をフィルター処理するには、 --Path パラメーターを使用します。To filter specific log types, such as HTTP, use the --Path parameter. 例:For example:

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

ローカル ターミナルの場合In local terminal

ローカル コンソールでログをストリーミングするには、Azure CLI をインストールし、アカウントにサインインします。To stream logs in the local console, install Azure CLI and sign in to your account. サインインした後、Cloud Shell の手順に従いますOnce signed in, followed the instructions for Cloud Shell

アクセス ログ ファイルAccess log files

ログの種類に Azure Storage BLOB オプションを構成する場合は、Azure Storage で使用できるクライアント ツールが必要です。If you configure the Azure Storage blobs option for a log type, you need a client tool that works with Azure Storage. 詳しくは、「Azure Storage クライアント ツール」をご覧ください。For more information, see Azure Storage Client Tools.

App Service ファイル システムに格納されているログの場合に最も簡単な方法は、次の場所にある ZIP ファイルをブラウザーでダウンロードすることです。For logs stored in the App Service file system, the easiest way is to download the ZIP file in the browser at:

  • Linux/コンテナー アプリ: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zipLinux/container apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows アプリ: https://<app-name>.scm.azurewebsites.net/api/dumpWindows apps: https://<app-name>.scm.azurewebsites.net/api/dump

Linux/コンテナー アプリの場合、ZIP ファイルには、Docker ホストと Docker コンテナー両方のコンソール出力ログが含まれます。For Linux/container apps, the ZIP file contains console output logs for both the docker host and the docker container. スケールアウトされたアプリの場合、ZIP ファイルには、各インスタンスの 1 セットのログが含まれます。For a scaled-out app, the ZIP file contains one set of logs for each instance. App Service ファイル システムでは、これらのログ ファイルは /home/LogFiles ディレクトリの内容です。In the App Service file system, these log files are the contents of the /home/LogFiles directory.

Windows アプリの場合、ZIP ファイルには、App Service ファイル システムの D:\Home\LogFiles ディレクトリの内容が含まれています。For Windows apps, the ZIP file contains the contents of the D:\Home\LogFiles directory in the App Service file system. その構造を次に示します。It has the following structure:

ログのタイプLog type DirectoryDirectory 説明Description
アプリケーション ログApplication logs /LogFiles/Application//LogFiles/Application/ 1 つ以上のテキスト ファイルが含まれます。Contains one or more text files. ログ メッセージの形式は、使用するログ プロバイダーによって異なります。The format of the log messages depends on the logging provider you use.
失敗した要求のトレースFailed Request Traces /LogFiles/W3SVC#########//LogFiles/W3SVC#########/ XML ファイルと XSL ファイルが含まれます。Contains XML files, and an XSL file. 書式設定された XML ファイルをブラウザーで表示できます。You can view the formatted XML files in the browser.
詳細なエラー ログDetailed Error Logs /LogFiles/DetailedErrors//LogFiles/DetailedErrors/ HTM エラー ファイルが含まれます。Contains HTM error files. ブラウザーで HTM ファイルを表示できます。You can view the HTM files in the browser.
失敗した要求のトレースを表示するもう 1 つの方法は、ポータルでアプリのページに移動します。Another way to view the failed request traces is to navigate to your app page in the portal. 左側のメニューから、 [問題の診断と解決] を選択し、 [Failed Request Tracing Logs](失敗した要求トレースのログ) を検索し、アイコンをクリックして目的のトレースを参照して表示します。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.
Web サーバー ログWeb Server Logs /LogFiles/http/RawLogs//LogFiles/http/RawLogs/ W3C 拡張ログ ファイル形式を使用して書式設定されたテキスト ファイルが含まれます。Contains text files formatted using the W3C extended log file format. この情報は、テキスト エディターまたは Log Parser などのユーティリティを使用して読むことができます。This information can be read using a text editor or a utility like Log Parser.
App Service では、s-ips-computername、または cs-version フィールドはサポートされていません。App Service doesn't support the s-computername, s-ip, or cs-version fields.
デプロイ ログDeployment logs /LogFiles/Git/ および /deployments//LogFiles/Git/ and /deployments/ 内部デプロイ プロセスによって生成されたログだけでなく、Git デプロイのログも含まれます。Contain logs generated by the internal deployment processes, as well as logs for Git deployments.

次のステップNext steps