github.com/bugsnag/bugsnag-go (go): Package bugsnag captures errors in real-time and reports them to Bugsnag (http://bugsnag.com).  Using bugsnag-go is a three-step process.  1. As early as possible in your program configure the notifier with your APIKey. This sets up handling of panics that would otherwise crash your app.  2. Add bugsnag to places that already catch panics. For example you should add it to the HTTP server when you call ListenAndServer:  If that's not possible, you can also wrap each HTTP handler manually:  3. To notify Bugsnag of an error that is not a panic, pass it to bugsnag.Notify. This will also log the error message using the configured Logger.  For detailed integration instructions see https://bugsnag.com/docs/notifiers/go.  The only required configuration is the Bugsnag API key which can be obtained by clicking "Settings" on the top of https://bugsnag.com/ after signing up. We also recommend you set the ReleaseStage, AppType, and AppVersion if these make sense for your deployment workflow.  If you need to attach extra data to Bugsnag notifications you can do that using the rawData mechanism.  Most of the functions that send errors to Bugsnag allow you to pass in any number of interface{} values as rawData. The rawData can consist of the Severity, Context, User or MetaData types listed below, and there is also builtin support for *http.Requests.  If you want to add custom tabs to your bugsnag dashboard you can pass any value in as rawData, and then process it into the event's metadata using a bugsnag.OnBeforeNotify() hook.  If necessary you can pass Configuration in as rawData, or modify the Configuration object passed into OnBeforeNotify hooks. Configuration passed in this way only affects the current notification.
Keywords: bug|bugs|bugsnag|crash|crash-reporting|debug|debugging-tool|error|error-handling|error-monitoring|error-reporting|errors|exceptions|gin|go|negroni|panic|revel