@hackage bugsnag1.2.0.1
Bugsnag error reporter for Haskell
Installation
Dependencies (16)
- Glob >=0.9.0
- aeson >=1.4.2.0
- annotated-exception >=0.2.0.3
- base >=4.11.0 && <5
- bugsnag-hs >=0.2.0.8
- bytestring >=0.10.8.2 Show all…
Dependents (3)
@hackage/freckle-app, @hackage/bugsnag-wai, @hackage/bugsnag-yesod
Package Flags
examples
(off by default)
Build the examples
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.