LogSure

Errors

See the error before the email.

Errors from your pages, servers and apps, grouped into issues, scrubbed before they are stored, and linked to the trace they happened in.

An app's open errors: each issue with its type, message, the line of the app's own code it starts in, the release, a sparkline of the last days, events, users and when it was last seen.

Issues, not noise.

The same error a thousand times is one issue. LogSure groups by type, by the message with its numbers and IDs taken out, and by the top frames of your own code, with build hashes ignored.

  • Events, users and a sparkline per issue
  • The first frame of your code, the release and the environment
  • Resolve, ignore, or add a note for the team
  • A resolved issue that comes back opens again
One issue: TypeError, cannot read properties of undefined, with its events, users, first and last seen, events per day over 30 days and the latest occurrence with its stack trace.

It catches what you didn't.

Send the errors you catch with one call. Turn on, per app, what the tracker may catch by itself; everything is off until you do.

  • Uncaught errors and rejected promises
  • console.error calls, which still log
  • Requests that fail or answer 5xx, 4xx if you choose: the method, the address, the status and the time, never bodies or headers
  • Scripts, style sheets and images that do not load
An app's settings in sections with a search field: General, Collection, Features, Forms and inbox, Waitlist, Errors, Tracing, Privacy and retention, Integrations, with error capture turned on.

From the error to its trace.

An exception on an OpenTelemetry span, or a log at ERROR, becomes an occurrence too. Open it, and View trace shows the request it broke, span by span.

Learn more about tracing
A failed checkout as a waterfall: the payment service timed out after two seconds, its spans in red, with the error issue it raised and its three logs.

Safe to keep. Loud when it matters.

ScrubbedEmail addresses, tokens and keys, card-like numbers and URL query strings are removed before anything is stored.
AlertsA new or reopened issue rings the bell, calls the webhook and notifies the iPhone and Mac apps. Ignored issues stay quiet.
ReleasesTag every report with a release and an environment, and filter the list by either, or by how it was caught.
CappedAt most 10 reports a page and a daily cap per app, so a loop in one browser cannot fill the database.

How it works.

Name the release

The tracker you already have, with the release and environment on the tag.

<script defer data-app="example-shop"
  data-release="2.4.1"
  data-environment="production"
  src="/_care/script.js"></script>

Send what you catch

Any error, with properties. Turn on automatic capture in the app's settings.

try {
  checkout();
} catch (err) {
  logsure.error(err, { step: 'checkout' });
}

Report from servers

Back-ends and native apps post with the app's server key.

curl -X POST $LOGSURE_URL/_care/error \
  -H "authorization: Bearer $LOGSURE_KEY" \
  -d '{"message":"Card declined",
       "release":"api-1.18.0"}'