Skip to content

Create-Inc/pino-sentry-transport

 
 

Repository files navigation

Pino Sentry transport

npm version npm downloads bundle JSDocs License

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 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.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%