3.0.0-rc.2 • Published 9 months ago

@debugr/sentry v3.0.0-rc.2

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

Sentry Log Handler for Debugr

This LogHandler will forward errors to Sentry.

This plugin does not use the Sentry SDK, because it's incompatible with AsyncLocalStorage, which Debugr makes heavy use of.

Installation

npm install --save @debugr/sentry

Usage

import { Logger, LogLevel } from '@debugr/core';
import { SentryHandler } from '@debugr/sentry';

const globalContext = {
  applicationName: 'example',
};

const logger = new Logger(globalContext, [
  new SentryHandler({
    dsn: 'https://publickey@my.sentry.host/123',
  }),
]);

logger.setContextProperty('jobName', 'sentryTest');

logger.error(new Error('App crashed!'));

Options

The SentryHandler constructor accepts an optional options object as the first argument. The available options are:

OptionTypeDefaultDescription
dsnstring(none)The Sentry DSN. If unspecified or empty, the handler will not do anything.
breadcrumbThresholdLogLevelLogLevel.DEBUGThe minimum level for entries to be collected as breadcrumbs.
captureThresholdLogLevelLogLevel.ERRORThe minimum level at which entries should be captured and sent to Sentry. A captured entry will send all breadcrumbs collected within the same task prior to the entry being captured.
captureProbabilitynumber1The probability, as a float in the range <0, 1>, with which captured entries will be actually sent to Sentry. For example a value of 0.1 means 10% probability, so roughly 1 in every 10 captured entries will be sent.
captureWholeTasksbooleantrueWhether to wait for a task to finish before sending captured entries to Sentry. If this is set to true (the default), only the last entry captured within a task will be sent, with all prior captured entries from the same task included in the breadcrumbs. When set to false, each entry captured within a task will be sent immediately, including all prior breadcrumbs, which could result in multiple separate entries in Sentry when an error is logged multiple times.
extractMessage(entry: LogEntry) => string(see description)A callback which should extract a string message from a LogEntry. By default, if an error is part of the entry, its message is used; otherwise the entry message is used, if present; and finally a generic string is generated.
levelMapRecord<number, string>(none)A map of custom log levels to Sentry log levels. Sentry recognises the following log levels: debug, info, warning, error and fatal.