eugeny-dementev / winston-console-formatter

Pretty print console formatter in yaml like style
MIT License
24 stars 10 forks source link

Winston@2 console formatter

Build Status Code Coverage

Pretty print console formatter in yaml like style for winston@2

Install

npm install winston-console-formatter

This is custom config for default winston console transform.

Usage

const winston = require('winston');
const wcf = require('winston-console-formatter');

const logger = new winston.Logger({
  level: 'silly',
});

const { formatter, timestamp } = wcf();

logger.add(winston.transports.Console, {
  formatter,
  timestamp,
});

logger.log('error', 'message');
logger.log('warn', 'message');
logger.log('info', 'message');
logger.log('verbose', 'message');
logger.log('debug', 'message');
logger.log('silly', 'message');

API

wcf(options)

options

Type: Object

options.types

Type colors configuration for yamlify-object package
Default:

wcf({
  types: require('yamlify-object-colors'),
});

Meta object example

To disable types colors pass false:

wcf({
  types: false,
});
options.colors

Message colors by log levels
Default:

const clc = require('cli-color');

wcf({
  colors: {
    silly: clc.blue,
    debug: clc.cyan,
    info: clc.green,
    warn: clc.yellow,
    error: clc.red,
    verbose: clc.magenta,
  },
});

Levels color

To disable colors pass false:

wcf({
  colors: false,
});
options.stackTrace

Showing passed to meta object stack or trace prop
Type: boolean
Default: true

options.meta

Showing meta object
Type: boolean
Default: true

options.prefix

Type: string
Default: ''

options.postfix

Type: string
Default: ''

Message line

winston-console-formatter can take winston label option to enrich message line:

logger.add(winston.transports.Console, {
  formatter,
  timestamp,
  label: 'some label',
});

logger.log('error', 'message');

Label

Also winston-console-formatter can handle from and stack props from meta object to enrich message line

from

const meta = {
  from: 'Browser',
};
logger.log('error', 'message', meta);

From

stack

try {
  undefined();
} catch (e) {
  logger.error(e.toString(), {
    stack: e.stack,
  });
}

Stack