@blacklane/kiev-js

A simple logging library to generate JSON formatted logging messages.


Keywords
logger, kiev, logging, typescript
License
MIT
Install
npm install @blacklane/kiev-js@2.0.2

Documentation

Kiev-js

Build Status

Kiev-js is a wrapper logging library around LogLevel implementing Blacklane logging standards.

Setup instructions

Requirements

Installation

npm install @blacklane/kiev-js

Usage

import {Logger, LoggerConfig, LogLevel} from '@blacklane/kiev-js'

const environment = process.env.NODE_ENV || 'development'

let loggerConfiguration: LoggerConfig = {
  application: 'application-name',
  environment: environment,
  initializedFields: { foo: 'foo', bar: 'bar' }, // it is optional and will be added to all log entries
  filterFields: ["password", "accessToken"] // it is optional and will filter the content of the field
}

// Default level is 'warn'
logger = new Logger(loggerConfiguration)

// This won't be logged due to the default level
logger.debug('Something happening here', { foo: 'bar' })

// Next line will be logged
// The payload will override any field defined in the constructor
logger.warn('WARN! Look at this', { foo: 'bar', password: "Hard_One" })

// => {"application":"application-name","environment":"development","level":"WARN", message: "WARN! Look at this", "timestamp":"2020-10-15T10:51:32.621Z", "foo": "bar", "bar": "bar", "password": "[FILTERED]}


// Setting logger to 'debug' level
logger.setLevel(LogLevel.DEBUG)

logger.debug('FooBar', { fizz: 'buzz' }) // Now it will be logged

// => {"application":"application-name","environment":"development","level":"DEBUG", message: "FooBar", "timestamp":"2020-10-15T10:51:32.621Z", "fizz": "buzz", "foo": "foo", "bar": "bar"}

// Create a new logger based on the current one
const newLogger = logger.extend({ tracking_id: "an tracking ID" })

// tracking_id will be present on all logs produced by this logger
newLogger.info('GET / - 200 OK')
// => {"application":"application-name","environment":"development","level":"INFO", message: "GET / - 200 OK", "timestamp":"2020-10-15T10:51:32.621Z", "foo": "foo", "bar": "bar", "tracking_id": "an tracking ID"}

Contributing

  1. Pull the code:
git clone git@github.com:blacklane/kiev-js.git
  1. Install dependencies
npm install
  1. Run tests:
npm test
  1. Create your feature branch (git checkout -b my-new-feature)
  2. Commit your changes (git commit -am 'Add some feature')
  3. Push to the branch (git push origin my-new-feature)
  4. Create a new Pull Request

Tests & Linter

  • Run unit tests: npm run test
  • Run tests watch & coverage: npm run test:cov
  • Run Linter: npm run lint