web-dev-qa-db-ja.com

AzureのASP.NET Webアプリケーション-エラーを記録する方法

AzureにWebアプリケーションを展開していますが、エラーを記録する方法がわかりません。

テストのために、このForceErrorメソッドがあります。

public string ForceError()
{
    throw new Exception("just a test exception");
    return "ok";
}

次のような原因とエラー: enter image description here

Azureでは、次のようにすべての診断ログを有効にしました: enter image description here

ただし、選択したストレージコンテナーに強制エラーは表示されません。

アプリケーションからのすべてのエラーの記録を開始するために何をすべきか知っていますか?

17
nest

Azure Webサイトでは、ログを記録する最良の方法はApplication Insightsです。無料版を使用して、クラッシュ/速度/パフォーマンスに関する洞察を得ることができます。

ただし、すべてを有効にした場合、Application Insightsは少し遅くなります。ただし、カスタマイズしてエラーログのみを有効にすると、すべてのログがAzureアプリケーションの洞察アカウントにプッシュされ、非常にうまく監視/分析できるようになります。

詳細については、 https://Azure.Microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

Application Insightsを自動的に構成する代わりに、空のプロジェクトを取り、アプリケーションの洞察をセットアップすることをお勧めします。追加されたすべての構成ファイルとnugetパッケージに注意してください。アプリケーションキー/署名を除くいくつかの洞察の構成ファイルがあります。すべてをオフにすることができます。

例外を手動で追跡する場合にのみ、TelemetryClientを作成してTrackExceptionメソッドを呼び出すことができます。必要に応じて、詳細を渡すことができます。

9
Akash Kava

Azure Webアプリケーションのログで例外をスローするだけでは機能しないのではないかと心配しています。

ASP.NETアプリケーションはSystem.Diagnostics.Traceアプリケーション診断ログに情報を記録するクラス。以下の例の4つの方法は、診断ログレベルに対応しています。

Trace.TraceError("Message"); // Write an error message   
Trace.TraceWarning("Message"); // Write a warning message
Trace.TraceInformation("Message"); // Write an information message
Trace.WriteLine("Message"); // Write a verbose message

enter image description here

ログに記録されたイベントの基本情報に加えて、blobストレージは、インスタンスID、スレッドID、CSVのより詳細なタイムスタンプ(ティック形式)などの追加情報を記録します。

enter image description here

素晴らしい記事 こちら ロギングのヒントとツールについて。

公式のリファレンス Azure Web Apps Logging Document も参照してください。

27
Derek