Skip to content

Latest commit

 

History

History
91 lines (62 loc) · 2.02 KB

readme.md

File metadata and controls

91 lines (62 loc) · 2.02 KB

bunyan-postgres-stream

Build Status NPM Version Coverage Status

Store your Bunyan logs in PostgreSQL.

This module creates a Bunyan stream that maps the default log fields to table columns and also records the entire log message in a jsonb column to support your custom fields.

Requires PostgreSQL 9.4 or above for use with jsonb column types.

Install

$ npm install --save bunyan-postgres-stream

Usage

First, create the table you want to store your logs in:

create table if not exists "public"."logs" (
  "id" serial primary key,
  "name" text,
  "level" integer,
  "hostname" text,
  "msg" text,
  "pid" integer,
  "time" timestamptz,
  "content" jsonb
)

Then, use the package as a Bunyan stream:

const bunyan = require('bunyan')
const bunyanPostgresStream = require('./')

const stream = bunyanPostgresStream({
  connection: {
    host: 'localhost',
    user: 'postgres',
    password: 'password',
    database: 'db'
  },
  tableName: 'logs'
})

const log = bunyan.createLogger({
  name: 'postgres stream',
  level: 'info',
  stream
})

log.info('something happened')

// explicity dispose of the database connection pool
stream.end()

API

bunyanPostgresStream(options)

options

connection

Type: object

One of the following:

  • a valid node-postgres connection options object
  • an initialized knex.js instance (see examples/knex.js)
tableName

Type: string

The name of the table that will contain the logs.

Contributing

Pull requests welcome.

License

MIT © Forrest Desjardins