npm install pino-sentry -g
node ./app.js | pino-sentry --dsn=https://******@sentry.io/12345
const { createWriteStream } = require('pino-sentry');
// ...
const opts = { /* ... */ };
const stream = createWriteStream({ dsn: process.env.SENTRY_DSN });
const logger = pino(opts, stream);
// add tags
logger.info({ tags : { foo : "bar" }, msg : "Error" });
// add extra
logger.info({ extra : { foo : "bar" }, msg : "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
extra
stack
maxValueLength
- option to adjust max string length for values, default is 250
const { createWriteStream } = require('pino-sentry');
// ...
const opts = { /* ... */ };
const stream = createWriteStream({
dsn: process.env.SENTRY_DSN,
messageAttributeKey: 'message',
stackAttributeKey: 'trace',
extraAttributeKeys: ['req', 'context'],
maxValueLength: 250,
});
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'
}