Skip to content

jsantias/pino-splunk-logging

 
 

Repository files navigation

pino-splunk-logger

Pino Splunk Logger is a fork off the project 'pino-splunk-events' by vtex (https://github.com/vtex/pino-splunk-events) Instead of using splunk-events we use splunk-logging

Install

$ npm install pino-splunk-logger

Usage

$ node app.js | npx pino-splunk-logger --endpoint=YOUR_SPLUNK_ENDPOINT --token=YOUR_SPLUNK_TOKEN

Node (development mode)

import { PrettyConsole } from 'pino-splunk-logger/lib/core/PrettyConsole'

const logger = pino({
  prettyPrint: {
    messageFormat: PrettyConsole.messageFormat,
  },
})

Browser (production mode)

import { getPinoBrowserWriteLog } from 'pino-splunk-events/lib/browser'
import SplunkEvents from 'splunk-events'
import pino from 'pino'

const splunk = new SplunkEvents({
  endpoint: process.env.SPLUNK_ENDPOINT,
  token: process.env.SPLUNK_TOKEN,

  // IMPORTANT! You need to set this flag
  // to permit send nested data to splunk
  // otherwise it will fails when try to
  // send some log with nested data
  shouldParseEventData: false,
})

const logger = pino({
  browser: {
    write: getPinoBrowserWriteLog(splunk),
  },
})

Browser (development mode)

import { PrettyConsole } from 'pino-splunk-events/lib/core/PrettyConsole'
import pino from 'pino'

const logger = pino({
  browser: {
    write: PrettyConsole.print,
  },
})

Table logs level to splunk

Log Level Splunk Query
trace level=Debug type=Info
debug level=Debug type=Info
info level=Important type=Info
warn level=Important type=Warn
error level=Important type=Error
fatal level=Critical type=Error

Running example

# terminal 1
$ yarn install
$ cd example && yarn install
# starts fake splunk server
$ yarn server:start

# terminal 2
# sends events to fake splunk server
$ yarn logger:start

Deploy / Release new tags

Use npx chan added|fixed|etc "my change"

And after setting a changelog, run:

yarn release

License

Released under MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 92.9%
  • JavaScript 7.1%