2.0.9 • Published 4 years ago
@saucesteals/winston-transport-sentry-node v2.0.9
winston-transport-sentry-node
@Sentry/node transport for the winston v3 logger.
Index
Install
npm install @saucesteals/winston-transport-sentry-nodeUsage
You can configure winston-transport-sentry-node in two different ways.
With winston.createLogger:
const winston = require("winston");
const SentryTransport = require("winston-transport-sentry-node").default;
const options = {
sentry: YourSentryInstance,
level: "info",
};
const logger = winston.createLogger({
transports: [new SentryTransport(options)],
});Or with winston's add method:
const winston = require("winston");
const Sentry = require("winston-transport-sentry-node").default;
const logger = winston.createLogger();
logger.add(new Sentry(options));See Options below for custom configuration.
Options (options)
Transport related options
sentry(Sentry) - A Sentry Instance that is initialized (ex.require("@sentry/node"))silent(Boolean) - suppress logging (defaults tofalse)level(String) - transport's level of messages to log (defaults toinfo)format(Object) - custom log format (see Winston Formats)levelsMap(Object) - optional custom mapping between Winston's log levels and Sentry's log levels (default)
Info object (See more)
If info.tags is an object, it will be sent as Sentry Tags.
logger.error("some error", { tags: { tag1: "yo", tag2: "123" } });Additional properties of info are sent as Sentry Extra Context.
logger.error("some error", { whatever: "is sent as extra" });Tip! If you already have logging in place and want to use Sentry tags but don’t want to update all places where you log something, use a format function.
const sentryFormat = format((info) => {
const { path, label, ...extra } = info;
return {
...extra,
tags: {
path: path || "",
request_id: label,
},
};
});
new SentryTransport({
format: sentryFormat(),
// ...
});Log Level Mapping
Winston logging levels are mapped by default to Sentry's acceptable levels.
{
silly: 'debug',
verbose: 'debug',
info: 'info',
debug: 'debug',
warn: 'warning',
error: 'error'
}See available Sentry's levels.
Matching is done with Sentry.Severity.fromString() method and will defaults to log