pino-sentry-transport
v1.4.0
Published
Integrates Pino and Sentry.
Downloads
42,237
Readme
Pino Sentry transport
Use this transport to send logs from Pino to Sentry. Useful for manually sending logs to Sentry.
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>",
// additional options for sentry
},
withLogRecord: true, // default false - send the entire log record to sentry as a context.(FYI if its more then 8Kb Sentry will throw an error)
tags: ['level'], // sentry tags to add to the event, uses lodash.get to get the value from the log record
context: ['hostname'], // sentry context to add to the event, uses lodash.get to get the value from the log record,
minLevel: 40, // which level to send to sentry
expectPinoConfig: true, // default false - pass true if pino configured with custom messageKey or errorKey see below
}
},
});
Configuration Options
withLogRecord
: When set totrue
, 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. Useslodash.get
to extract values.context
: An array specifying which fields from the log record should be added as context in Sentry. Also useslodash.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 totrue
, allows the transport to work with custommessageKey
orerrorKey
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.