JSPM

winston-json-formatter

0.9.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 674
  • Score
    100M100P100Q145843F
  • License MIT

A Winston JSON Formatter

Package Exports

  • winston-json-formatter

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (winston-json-formatter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm (tag) Known Vulnerabilities dependencies Status devDependencies Status

Winston JSON Formatter

A json and console formatter for winston@3.

Quickstart:

const { createLogger, transports } = require('winston');
const { configuredFormatter } = require('winston-json-formatter');

// Create Logger and configure options.

const logger = createLogger({ 
    level: 'silly',
    transports: [
        new (transports.Console)(),
    ],
});
const options = { 
    service: 'test-service', 
    logger: 'Winston-JSON-Formatter',
    version: '1.0.0', 
    typeFormat: 'json'
};

// set winston logger format and print logs.
logger.format = configuredFormatter(options);

// Availale log levels
logger.error('message');
logger.warn('message');
logger.info('message');
logger.verbose('message');
logger.debug('message');
logger.silly('message');

// Error Objects can be logged directly
err = new Error('Heroic BSoD')
logger.error(err)

Output

Json logging

> logger.info('message', {foo: 'bar', baz: 'qux'});
{
  "service": "test-service",
  "logger": "Winston-JSON-Formatter",
  "hostname": "host",
  "level": "info",
  "msg": "message",
  "meta": {
    "service": {
      "version": "1.0.0",
      "node_env": ""
    },
    "logger": {
      "time": "2018-11-28T02:52:06.700Z"
    },
    "event": {
      "foo": "bar",
      "baz": "qux"
    }
  },
  "err": {}
}

Console logging

console log style

Configuration

ENV

  • NODE_ENV=dev || NODE_ENV=development => options.typeFormat=console
  • Otherwise, options.typeFormat=json (default)
Option Default Type
options.typeFormat Default: 'json' Enum: 'console', 'json'
options.hostname Default: os.hostname() String
options.logger Default: 'application-logger' String
options.node_env Default: ENV NODE_ENV String
options.service String
options.version String

Test

yarn install
yarn test
yarn test:coverage