npm install pino-sentry -g
Note: The v7 version of the Sentry JavaScript SDK requires a self-hosted version of Sentry 20.6.0 or higher. If you are using a version of self-hosted Sentry (aka onpremise) older than 20.6.0 then you will need to upgrade. See [email protected] release notes.
Alternatively you can pin @sentry/*
packages to 6.x.
node ./app.js | pino-sentry --dsn=https://******@sentry.io/12345
const {createWriteStream, Sentry} = require("pino-sentry");
// ...
const opts = {
/* ... */
};
// Provide your own Sentry instance via the sentryInstance option or supply the Sentry DSN via the dsn option
const stream = Sentry ? createWriteStream({sentryInstance: Sentry}) : createWriteStream({dsn: process.env.SENTRY_DSN});
const logger = pino(opts, stream);
// add tags
logger.info({tags: {foo: "bar"}, msg: "Error"});
// add category
logger.info({tags: {foo: "bar"}, msg: "Error", category: "auth"});
// add error - The error will be sent to Sentry as an exception, appending the `msg` to the error message
logger.error({msg: "Additional messge", err: new Error("An error")});
In case the generated message does not follow the standard convention, the main attribute keys can be mapped to different values, when the stream gets created. Following attribute keys can be overridden:
msg
- the field used to get the message, it can be dot notted (eg 'data.msg')maxValueLength
- option to adjust max string length for values, default is 250sentryExceptionLevels
- option that represent the levels that will be handled as exceptions. Default :error
andfatal
const { createWriteStream, Severity } = require("pino-sentry");
// ...
const opts = {
/* ... */
};
const stream = createWriteStream({
// Providing the DSN will call Sentry.init() for you
dsn: process.env.SENTRY_DSN,
// Alternatively you can provide your own Sentry instance
sentryInstance: Sentry,
maxValueLength: 250,
sentryExceptionLevels: [
Severity.Warning,
Severity.Error,
Severity.Fatal,
],
});
const logger = pino(opts, stream);
--dsn
(-d
): your Sentry DSN or Data Source Name (defaults toprocess.env.SENTRY_DSN
)--environment
(-e
): (defaults toprocess.env.SENTRY_ENVIRONMENT || process.env.NODE_ENV || 'production'
)--serverName
(-n
): transport name (defaults topino-sentry
)--debug
(-dm
): turns debug mode on or off (default toprocess.env.SENTRY_DEBUG || false
)--sampleRate
(-sr
): sample rate as a percentage of events to be sent in the range of 0.0 to 1.0 (default to1.0
)--maxBreadcrumbs
(-mx
): total amount of breadcrumbs that should be captured (default to100
)--level
(-l
): minimum level for a log to be reported to Sentry (default todebug
)
Pino logging levels are mapped by default to Sentry's acceptable levels.
{
trace: 'debug',
debug: 'debug',
info: 'info',
warn: 'warning',
error: 'error',
fatal: 'fatal'
}