Pino Sentry transport

Pino Sentry Transport allows you to send logs from Pino directly to Sentry.
Installation
npm i pino-sentry-transport
Usage
import pino from "pino";
const logger = pino({
transport: {
target: "pino-sentry-transport",
options: {
sentry: {
dsn: "https://<key>:<secret>@sentry.io/<project>",
},
withLogRecord: true,
tags: ['level'],
context: ['hostname'],
minLevel: 40,
expectPinoConfig: true,
}
},
});
Configuration Options
withLogRecord
: When set to true
, sends the entire log record as context to Sentry. Be cautious of log records larger than 8KB, as Sentry will throw an error.tags
: An array specifying which fields from the log record should be added as tags in Sentry. Uses lodash.get
to extract values.context
: An array specifying which fields from the log record should be added as context in Sentry. Also uses lodash.get
for value extraction.minLevel
: The minimum log level required for a message to be sent to Sentry. Log levels follow Pino's conventions (e.g., 40 for 'error').expectPinoConfig
: If set to true
, allows the transport to work with custom messageKey
or errorKey
settings in Pino.
Sentry initialization
Because Pino transport runs in a separate worker thread, Sentry needs to be initialized in the transport.
License
This project is licensed under the MIT License - see the LICENSE file for details.