Safe Haskell | None |
---|---|
Language | Haskell2010 |
Network.Yeller
- sendError :: (ToError e, ToJSON a) => YellerClient -> e -> ExtraErrorInfo a -> IO ()
- client :: YellerClientSettings -> IO YellerClient
- defaultClientSettings :: YellerClientSettings
- data YellerClientSettings = YellerClientSettings {}
- data ApplicationEnvironment
- newtype ApplicationPackage = ApplicationPackage Text
- newtype YellerToken = YellerToken Text
- data ExtraErrorInfo a = ExtraErrorInfo {
- errorURL :: Maybe Text
- errorCustomData :: Maybe (Map Text a)
- errorLocation :: Maybe Text
- errorUser :: Maybe UserInfo
- errorHTTPRequest :: Maybe HTTPRequest
- emptyExtraErrorInfo :: ExtraErrorInfo Int
- data HTTPRequest = HTTPRequest {}
- data UserInfo = UserInfo {}
- data ErrorNotification a = ErrorNotification {}
- data StackFrame = StackFrame {}
- data StackOptions = StackOptions {}
- class (Typeable a, Show a) => ToError a
- data YellerClientErrorHandler = YellerClientErrorHandler {
- handleAuthenticationErrors :: Response BodyReader -> IO ()
- handleIOErrors :: SomeException -> ErrorNotification Value -> IO ()
- defaultErrorHandler :: YellerClientErrorHandler
- newtype Backend = Backend Text
- data YellerClient
Documentation
sendError :: (ToError e, ToJSON a) => YellerClient -> e -> ExtraErrorInfo a -> IO () Source
Sends an error to Yeller's servers
needs a client, something that can be turned into an error (via ToError), and
extra error information (which describes additional information to be sent
along with the error). See ExtraErrorInfo
for the extra info, and client
for
how to create a client.
Sample invocation:
sendError yellerClient someError emptyExtraErrorInfo
client :: YellerClientSettings -> IO YellerClient Source
Initializes a Yeller client, given some client settings Call it like this with the default client settings:
client
(defaultClientSettings
{clientSettingsToken
=YellerToken
"YOUR_TOKEN_HERE" })
defaultClientSettings :: YellerClientSettings Source
The default client settings, used for constructing a client
data YellerClientSettings Source
Options you pass when creating a client, usually done like this:
client
(defaultClientSettings
{clientSettingsToken
=YellerToken
"YOUR_TOKEN_HERE" })
Constructors
YellerClientSettings | |
Fields
|
data ApplicationEnvironment Source
The Environment your client is running in. If set to TestEnvironment
,
then no errors will be reported (which you should do for development/testing)
Constructors
TestEnvironment | Clients constructed with this environment don't send errors. |
ApplicationEnvironment Text | Any client in this kind of environment will report errors. |
newtype ApplicationPackage Source
The name of the package your application is in.
Constructors
ApplicationPackage Text |
newtype YellerToken Source
An api token. Get one from your project's settings page
Constructors
YellerToken Text |
data ExtraErrorInfo a Source
Extra error information to be passed along with an error. All fields are optional.
Constructors
ExtraErrorInfo | |
Fields
|
Instances
Eq a => Eq (ExtraErrorInfo a) | |
Show a => Show (ExtraErrorInfo a) |
emptyExtraErrorInfo :: ExtraErrorInfo Int Source
Extra error info with all fields turned off.
Useful when getting started, but real apps should fill in as many fields as possible for better debugging context
data HTTPRequest Source
Lets you attach which http request was occurring when the error happened which lets you see the browser, if the request came from a spider and so on
Constructors
HTTPRequest | |
Fields
|
Instances
Lets you attach which user the error happened with which lets you count the total number of affected users
data ErrorNotification a Source
An error notification. This is what is sent to Yeller's servers
Constructors
ErrorNotification | |
Fields
|
Instances
Eq a => Eq (ErrorNotification a) | |
Show a => Show (ErrorNotification a) | |
ToJSON b => ToJSON (ErrorNotification b) |
data StackFrame Source
A line of the stacktrace
Constructors
StackFrame | |
Fields
|
Instances
data StackOptions Source
Options to be associated with each line in the stacktrace. Currently only supports if the line is in the application or not.
Constructors
StackOptions | |
Fields |
Instances
class (Typeable a, Show a) => ToError a Source
A class for converting things into errors. Means you can pass both exceptions, and any other error like values in your code.
Minimal complete definition
Instances
data YellerClientErrorHandler Source
An error handler, for dealing with errors when sending errors to Yeller's servers
defaultErrorHandler
just prints to stderr when receiving errors, but you
might want to override that to make it go to your logging system of choice.
Constructors
YellerClientErrorHandler | |
Fields
|
defaultErrorHandler :: YellerClientErrorHandler Source
The default error handler, which logs errors when sending things to Yeller to stderr
An endpoint to send errors with. Must end with "/" sample:
Backend "https://collector1.yellerapp.com"
data YellerClient Source
A Yeller client.
Build one with client
like so:
client (defaultClientSettings { clientSettingsToken = YellerToken YOUR_TOKEN_HERE })
Used to keep persistent http connections alive, keep track of which endpoint to send to, and a bunch of data that's sent along with the error.