@Sentry/node transport for the winston v3 logger.
npm install --save winston winston-transport-sentry-nodeYou can configure winston-transport-sentry-node in two different ways.
With new winston.Logger:
const winston = require('winston');
const Sentry = require('winston-transport-sentry-node');
const options = {
sentry: {
dsn: 'https://******@sentry.io/12345',
},
level: 'info'
};
const logger = new winston.Logger({
transports: [
new Sentry(options)
]
});Or with winston's add method:
const winston = require('winston');
const Sentry = require('winston-transport-sentry-node');
const logger = new winston.Logger();
logger.add(new Sentry(options));See Options below for custom configuration.
sentry(Object) - a Sentry configuration object (see Sentry Common Options)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)
dsn(String) - your Sentry DSN or Data Source Name (defaults toprocess.env.SENTRY_DSN)environment(String) - (defaults toprocess.env.SENTRY_ENVIRONMENT || process.env.NODE_ENV || 'production')serverName(String) - transport's name (defaults towinston-transport-sentry-node)debug(Boolean) - turns debug mode on or off (default toprocess.env.SENTRY_DEBUG || false)sampleRate(Number) - sample rate as a percentage of events to be sent in the range of 0.0 to 1.0 (default to1.0)maxBreadcrumbs(Number) - total amount of breadcrumbs that should be captured (default to100)- ... Other options
Info object (See more)
tags(Object) - tags transforms to extra data for sentry (see Sentry Extra Context)
// example
const sentryFormat = format(info => {
const output = Object.assign({}, info);
output.tags = {
path: info.path ? info.path : '',
request_id: info.label
};
return output;
});
new SentryTransport({
format: sentryFormat(),
// ...
})Winston logging levels are mapped by default to Sentry's acceptable levels.
{
silly: 'debug',
verbose: 'debug',
info: 'info',
debug: 'debug',
warn: 'warning',
error: 'error'
}