例外レポート
例外レポートは、アプリケーションのクラッシュとエラーを特定して対処するうえで重要な役割を果たします。Babel Licensing Service には、アプリケーションの障害レポートを収集して分析するための強力な機能があります。
この記事では、サンプルコード console_exception_report_example を取り上げます。これは、Babel Licensing のクライアントライブラリを使って、アプリケーションの例外レポートを Babel Licensing Service に送信する方法を示すものです。このサンプルコードを活用すると、例外の根本原因を把握し、アプリケーションの安定性と信頼性を高められます。
アプリケーションの例外レポートのサンプル
console_exception_report_example を使い始めるには、次の手順に従います。
Git クライアントを開く
お好みの Git クライアントまたはコマンドラインを開きます。
リポジトリをクローンする
次のコマンドを実行して、GitHub リポジトリをクローンします。
git clone https://github.com/babelfornet/console-exception-report-example.gitプロジェクトディレクトリに移動する
リポジトリをクローンしたら、プロジェクトディレクトリに移動します。
cd console_exception_report_exampleサンプルを確認して実行する
これで、サンプルコードを確認して実行する準備が整いました。
console_exception_report_example は、Babel Licensing のクライアントライブラリをアプリケーションに組み込み、例外レポートを取得して Babel Licensing Service に送信する方法を示します。コードの内容は次のとおりです。
- BabelReporting の初期化:サンプルコードは
BabelReportingオブジェクトを初期化します。このオブジェクトが、Babel Licensing のクライアントライブラリへのインターフェイスになります。 - ユーザーキー:サンプルコードは、クライアントが例外を報告することを認可するためのユーザーキー(
UserKey)を割り当てます。必ず有効なユーザーキーに置き換えてください。ユーザーキーを生成するには、フローティングライセンスまたはライセンスアクティベーションの説明を参照してください。 - 構成:Babel Reporting サービスの URL は、Babel Licensing Service に接続するように設定されています。必要に応じて URL を調整してください。
// Configure Babel Reporting Service URL
reporting.Configuration.ServiceUrl = "http://127.0.0.1:5005";- BeforeSendReport イベント:サンプルコードは
BeforeSendReportイベントを購読します。このイベントでは、送信前の例外レポートをカスタマイズできます。このイベントハンドラーでは、cmdline(コマンドライン)やusername(現在のユーザーの名前)などのカスタムプロパティがレポートに追加されます。
reporting.BeforeSendReport += (s, e) => {
// Set report custom properties
e.Report.Properties.Add("cmdline", Environment.CommandLine);
e.Report.Properties.Add("username", Environment.UserName);
};- 例外の処理と報告:コードは、さまざまな種類の例外をシミュレートするためのメニューを表示します。例外が発生するとキャッチされ、スタックトレースを含む例外の詳細が表示されます。続いて、
BabelReportingオブジェクトのSendExceptionReportメソッドが呼び出され、例外レポートが Babel Licensing Service に送信されます。
static async void TryThrowException(Action throwException)
{
try
{
throwException();
}
catch (Exception ex)
{
Console.WriteLine("Exception thrown:");
Console.WriteLine(ex.StackTrace);
reporting.SendExceptionReport(UserKey, ex);
}
}- 例外の例:サンプルコードには、
DivideByZeroException、IndexOutOfRangeException、ArgumentNullException、OutOfMemoryExceptionの 4 つの例外シナリオが含まれています。各シナリオは、特定の種類の例外がスローされてキャッチされる様子を、対応するコードスニペットとともに示します。
サンプルが送信したレポートは、Babel Desktop の「レポート」ビューで、または Data Center エディションでは Web アプリケーションの「Reports」ページで参照できます。
console_exception_report_example は、Babel Licensing Service を利用してアプリケーションの障害レポートを収集、分析する方法を実際に示します。Babel Licensing のクライアントライブラリをお使いのアプリケーションに組み込み、このサンプルコードを活用することで、アプリケーションのクラッシュを詳しく把握し、バグの解決を早め、ユーザー体験を向上させ、今後の改善についてデータに基づいて判断できます。リポジトリをクローンしてコードを確認し、例外レポートを活用して、アプリケーションの安定性と信頼性を高めてください。