AzureにWebアプリケーションを展開していますが、エラーを記録する方法がわかりません。
テストのために、このForceErrorメソッドがあります。
public string ForceError()
{
throw new Exception("just a test exception");
return "ok";
}
Azureでは、次のようにすべての診断ログを有効にしました:
ただし、選択したストレージコンテナーに強制エラーは表示されません。
アプリケーションからのすべてのエラーの記録を開始するために何をすべきか知っていますか?
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メソッドを呼び出すことができます。必要に応じて、詳細を渡すことができます。
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
ログに記録されたイベントの基本情報に加えて、blobストレージは、インスタンスID、スレッドID、CSVのより詳細なタイムスタンプ(ティック形式)などの追加情報を記録します。
素晴らしい記事 こちら ロギングのヒントとツールについて。
公式のリファレンス Azure Web Apps Logging Document も参照してください。