Sentry transport for the winston v3 logger using @sentry/node.
yarn add winston winston-sentry-log
You can configure winston-sentry-log
in two different ways.
With winston.createLogger
:
import winston from 'winston';
import Sentry from 'winston-sentry-log';
const options = {
config: {
dsn: "https://******@sentry.io/12345"
},
level: "info"
};
const logger = winston.createLogger({
transports: [new Sentry(options)]
});
Or with winston's add
method:
import winston from 'winston';
import Sentry from 'winston-sentry-log';
const logger = winston.createLogger();
logger.add(Sentry, options);
See Options below for custom configuration.
Per options
variable above, here are the default options provided:
Default Sentry options:
dsn
(String) - your Sentry DSN or Data Source Name (defaults toprocess.env.SENTRY_DSN
)
Transport related options:
name
(String) - transport's name (defaults towinston-sentry-log
)silent
(Boolean) - suppress logging (defaults tofalse
)level
(String) - transport's level of messages to log (defaults toinfo
)levelsMap
(Object) - log level mapping to Sentry (see Log Level Mapping below)sentryClient
(Sentry) - the custom sentry client (defaults torequire('@sentry/node')
)isClientInitialized
(boolean) - whether to initialize the provided sentry client or not (defaults tofalse
)- If
isClientInitialized
is set to true, a customsentryClient
initialized must provided, otherwise internalsentryClient
will not initialized
- If
logger
(String) - defaults towinston-sentry-log
server_name
(String) - defaults toprocess.env.SENTRY_NAME
oros.hostname()
release
(String) - defaults toprocess.env.SENTRY_RELEASE
environment
(String) - defaults toprocess.env.SENTRY_ENVIRONMENT
)modules
(Object) - defaults topackage.json
dependenciesextra
(Object) - no default valuefingerprint
(Array) - no default value
For a full list of Sentry options, please visit https://docs.sentry.io/clients/node/config/.
Winston logging levels are mapped by default to Sentry's acceptable levels.
These defaults are set as options.levelsMap
and are:
{
silly: 'debug',
verbose: 'debug',
info: 'info',
debug: 'debug',
warn: 'warning',
error: 'error'
}
You can customize how log levels are mapped using the levelsMap
option:
new Sentry({
levelsMap: {
verbose: "info"
}
});
If no log level mapping was found for the given level
passed, then it will not log anything.