Bugsnag error reporter for Haskell.
Please see README.md
Bugsnag error reporter for Haskell
Catch exceptions in your Haskell code and report then to Bugsnag.
Configuration
let settings = defaultSettings "A_BUGSNAG_API_KEY"
Manual Reporting
Data.Bugsnag.Exception
is the type of actual exceptions included in the event reported to Bugsnag. Constructing it directly can be useful to attach the current source location as a stack frame.
let
ex = defaultException
{ exception_errorClass = "Error"
, exception_message = Just "message"
, exception_stacktrace = [$(currentStackFrame) "myFunction"]
}
In order to treat it like an actual Haskell Exception
(including to report it), wrap it in AsException
:
notifyBugsnag settings $ AsException ex
Catching & Throwing
Catch any exceptions, notify, and re-throw:
myFunction `withException` notifyBugsnag @SomeException settings
Throw a manually-built exception:
throwIO $ AsException ex
Examples
Examples can be built locally with:
stack build --flag bugsnag:examples
bugsnag-hs
We depend on bugsnag-hs
to define the types for the full reporting API payload. Unfortunately, it exposes them from its own Network.Bugsnag
module, which conflicts with ourselves.
To get around this, we re-export that whole module as Data.Bugsnag
. If you are currently depending on bugsnag-hs
and wish to use our package too, we recommend you only depend on us and use its types through the Data.Bugsnag
re-export.