ASP.NET で例外診断のために Bugsnag を触ってみた
Bugsnag という例外診断サービスを ASP.NET で触ってみましたので、簡単にスクリーンショットを貼ります。
料金プランはこちら:Pricing and Plans - Bugsnag
14日間の試用期間がある模様。
導入
Bugsnag のサイトにアクセスし、サインアップを行います。
・プラットフォームに .NET を選択。ここで選択したものにあわせて、次の画面でドキュメントが表示されるもよう。
・Visual Studio 2015 を開き、適当な ASP.NET MVC プロジェクトを作成します。
・NuGet で Bugsnag をインストール。
・Web.config にて、以下のように設定します。
<configuration> <configSections> <section name="bugsnagConfig" type="Bugsnag.ConfigurationStorage.ConfigSection, Bugsnag" /> </configSections> <bugsnagConfig apiKey="**** api key ****" /> </configuration>
・FilterConfig.cs にて、以下のように属性を追加。
using Bugsnag.Clients; using System.Web; using System.Web.Mvc; namespace ReportTry { public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(WebMVCClient.ErrorHandler()); filters.Add(new HandleErrorAttribute()); } } }
・HomeController.cs に、例外を発生させるコードを追加。
using Bugsnag.Clients; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ReportTry.Controllers { public class HomeController : Controller { public ActionResult Index() { WebMVCClient.Notify(new ArgumentException("試しの例外です")); return View(); } public ActionResult Error() { throw new Exception("試しの例外発生です", new Exception("InnerExceptionです")); }
・デバッグで起動し、~/Home/Index と、~/Home/Error に何度かアクセスしてみます。
すると、Bugsnag のダッシュボードサイトにて、以下のように表示。
検索も対応。
エラーに対してアクション等。スヌーズ、アサイン、Fix 等が可能。
デフォルトでメール送信になっているようで、以下のようなメールが送信されてきました。
メールは嫌だったので OFF にし、Slack に連携してみました。
ドキュメントはこちら。Documentation - Bugsnag
ちょっとしばらく使ってみようかなと思いました。
ちょっと使ってみて
ASP.NET MVC プロジェクトにて導入してみましたが、いろいろ引っかかる点がありました。できれば対応を進めようと思います。
Global.asax.cs の Application_Error() 内でエラーを送信しようとしましたが、やりたいことができなかったり。(Request情報やInnerExceptionの情報を送信できなかったり。)
既存のライブラリは2つ見つけまして、
・公式の bugsnag/bugsnag-dotnet .NET notifier for Bugsnag
・非公式の danesparza/net-bugsnag .NET Bugsnag notifier library
通知の API の仕様は https://bugsnag.com/docs/notifier-api にあるので、これらを見ながら自分で作った方がよいのかなと思ったり。
また、StackTrace が空だとエラーとして追加してくれない?
Metadata として任意の情報も送信できるのですが、検索には対応していない?
いろいろ確認中です。