2017-02-09 9 views
0

Azure AppServiceデプロイメントでは、6つのインスタンスにスケールアウトされたWebAPIアプリケーションを実行します。Azure AppService:すべてのスケーリングされたマシンからのログへのアクセス

私たちのWebAPIアプリケーションは、NLogとFile appenderを使用して診断ログを書き込みます。これらのログファイルをAzure PortalまたはKudu経由で検査する方法はありますか?

Kuduはサンドボックス内のファイルシステムにアクセスできますが、アプリケーションが6つのインスタンスにスケールアウトされている場合、サンドボックスは1番目のインスタンスのみを表示しているようです。

他の5つのインスタンスのログファイルにアクセスする方法はありますか?

+0

をPROCESSIDでき

実際のアプリケーションサービスは、すべてのインスタンスが本質的に同じストレージが表示されますので、ファイルの共有ストレージを使用しています。他のインスタンスがあなたが見ることができないファイルを書いていると確信していますか? – juunas

+0

私は、コードがbinフォルダの兄弟である "logs"サブフォルダにログファイルを出力していることを知っています。 "私が読んでいる(Kudu/DebugConsoleからダウンロードした)ファイルは、実際には6つのインスタンスすべてからの統一されたコンテンツを含んでいるファイルですか? –

答えて

1

他の5つのインスタンスのログファイルにアクセスする方法はありますか。

ログファイルのパスはすべてのインスタンスで共有されます。 詳細については、Azure WebApp SandBoxおよびAzure WebApp File Accessを参照してください。

すべてのAzure Web Appには、Azure Storageによって保存/バックアップされたホームディレクトリがあります。このネットワーク共有は、アプリケーションがコンテンツを格納する場所です。すべてのインスタンスが同じディレクトリを参照するように、すべてのインスタンスでホームディレクトリが共有されます。

+0

これは正しいです。また、NLog' logger'を ' (例えば、 '' Target xsi:type = "Trace" ... /> ')NLogのログ出力がログストリームに表示されます。 すべてのマシンからのログメッセージが1つのログに表示されます。ストリーム。 –

1

この正確な理由でNLogから移動しました。 Azureはネイティブの.Net Traceを使用してAzureストレージにログするネイティブサポートを備えています。インスタンスごとにすべてのログをストレージに保存します。あなたが本当にNLogが滞在したい場合は、$ {MACHINENAME}を含めるようにログ名を設定したり、

関連する問題