@saucesteals/winston-transport-sentry-node
v2.0.9
Published
@sentry/node transport for the winston v3 logger
Downloads
2
Maintainers
Readme
winston-transport-sentry-node
@Sentry/node transport for the winston v3 logger.
Index
Install
npm install @saucesteals/winston-transport-sentry-node
Usage
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