Ninety Percent Muffin

    pino-transmit-http

    1.0.1 • Public • Published

    pino-transmit-http Build Status Coverage Status

    ATTENTION: draft version, not yet released!

    Lead maintainer: Sven Tschui

    This is a browser transmit for the Pino logger that sends log statements created in a browser environment to a remote server using HTTP calls (XHR, fetch or sendBeacon depending on availability).

    You can use it like so:

    $ npm install pino pino-transmit-http
    const pino = require('pino');
    const pinoTransmitHttp = require('pino-transmit-http');
     
    const logger = pino({
      browser: {
        trasmit: pinoTransmitHttp()
      }
    })
     
    logger.warn('hello pino')

    A HTTP request will by default look like this

    POST /log
    Content-Type: application/json;charset=UTF-8
     
    [{"ts":1531919330334,"messages":["hello pino"],"bindings":[],"level":{"label":"warn","value":40}}]

    Options that can be passed to pinoTransmitHttp({ ... }):

    key default description
    throttle 500 Amount of milliseconds to throttle the transmission of the log messages. Note that trailing = true, leading = false is used. See lodash.throttle
    debounce null Amount of milliseconds to debounce the transmission of the log messages. See lodash.debounce. If null then throttling is used
    url '/log' location where to send logs
    useSendBeacon true whether navigator.sendBeacon should be used on unload. Note that sendBeacon has various restriction. It operations on method POST only and can not send custom HTTP headers. content-type is always text/plain.
    forceSendBeacon false The transmit will fallback to XHR or fetch when a HTTP method other than POST or custom http headers are used since this is not supported by sendBeacon. With forceSendBeacon you can disable the fallback and use sendBeacon anyway. Note that in this case the log calls made using sendBeacon are issued as HTTP POST and without any custom headers.
    method 'POST' method to be used by XHR and fetch calls. Note that when you pass in a method other than POST, sendBeacon will not be used unless you pass forceSendBeacon.
    headers { 'content-type': 'application/json;charset=UTF-8' } for XHR and fetch calls. Not supported for sendBeacon calls headers added to XHR and fetch calls. Note that when you pass in custom headers sendBeacon will not be used unless you pass forceSendBeacon.
    fetch null fetch instance to be used instead of the global fetch variable

    Install

    npm i pino-transmit-http

    DownloadsWeekly Downloads

    228

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    35.2 kB

    Total Files

    17

    Last publish

    Collaborators

    • sventschui