Neglected Pizza Money

    @probot/pino
    TypeScript icon, indicating that this package has built-in type declarations

    2.3.5 • Public • Published

    @probot/pino

    formats pino logs and sends errors to Sentry

    About

    @probot/pino is currently built into probot, you don't need to manually pipe probot's logs into it. It will be easy to move it out of probot in future though, and give people a simple way to recover the logging behavior if they wish, or to replace it with another pino transport

    CLI Usage

    node my-script.js | pino-probot
    

    You can test the environment variables by setting them inline

    node my-script.js | LOG_FORMAT=json pino-probot
    

    Programmatic usage

    @probot/pino exports a getTransformStream() method which can be passed as 2nd argument to pino()

    import pino from "pino";
    import { getTransformStream } from "@probot/pino";
    
    const log = pino(
      {
        name: "probot",
      },
      getTransformStream()
    );

    This won't log anything to stdout though. In order to pass the formatted logs back to stdout, do the following

    import pino from "pino";
    import { getTransformStream } from "@probot/pino";
    
    const transform = getTransformStream();
    transform.pipe(pino.destination(1));
    const log = pino(
      {
        name: "probot",
      },
      transform
    );

    With custom options:

    const transform = getTransformStream({
      logFormat: "json",
      logLevelInString: true,
      sentryDsn: "http://username@example.com/1234",
    });

    Options

    The pino-probot binary can be configured using environment variables, while the getTransformStream() accepts an object with according keys

    Environment Varibale Option Description
    LOG_FORMAT logFormat Set to pretty or json. When set to pretty, logs are formatted for human readability. Setting to json logs using JSON objects. Defaults to pretty
    LOG_LEVEL_IN_STRING logLevelInString By default, when using the json format, the level printed in the log records is an int (10, 20, ..). This option tells the logger to print level as a string: {"level": "info"}. Default false
    SENTRY_DSN sentryDsn Set to a Sentry DSN to report all errors thrown by your app.

    (Example: https://1234abcd@sentry.io/12345)

    Contributing

    See CONTRIBUTING.md

    License

    ISC

    Keywords

    Install

    npm i @probot/pino

    DownloadsWeekly Downloads

    11,713

    Version

    2.3.5

    License

    MIT

    Unpacked Size

    30.6 kB

    Total Files

    15

    Last publish

    Collaborators

    • bkeepers
    • hiimbex
    • lee-dohm
    • tcbyrd
    • jasonetco
    • gr2m
    • probotbot