winster

Optionated logging library based on Winston.

Usage no npm install needed!

<script type="module">
  import winster from 'https://cdn.skypack.dev/winster';
</script>

README

winster

Optionated logging library based on Winston.

NPM version David CircleCI codecov XO code style

Motivation

Winston is a powerful logging framework but still needs some setup for every project.
Winster makes it easier to use logging with zero configuration in typical node.js projects.

Install

$ npm install winster --save

Note: winster requires node.js 6.0 and higher.

Usage

Basic usage, zero configuration:

import winster as logger from 'winster';
const logger = require('winster').instance();

logger.trace('Some trace information ...');
logger.info('Some, whatever info ...');

Log levels

Winster uses slightly different logging levels compared to winston:

logger.fatal('...');
logger.error('...');
logger.debug('...');
logger.warn('...');
logger.data('...');
logger.info('...');
logger.verbose('...');
logger.trace('...');

Transporters

By default the pre-configured transports in ./src/default.transports.js will be used.

You can configure your custom transport configuration, by:

Prio 1: Adding a section winster to your package.json, pointing to your configuration file:

"winster": {
  "configFile": "./config/winster.js"
}

Prio 2: Placing a file called .winster.json or .winster.js to the root of your project.

Transporters can be defined by environment (process.env.NODE_ENV):


const Winston = require('winston');

module.exports = {
  development: [
    {
      transporter: Winston.transports.Console,
      options: {
        name: 'Console',
        level: 'trace',
        colorize: true,
        json: false,
        prettyPrint(object) {
          return JSON.stringify(object, null, 2);
        },
        handleExceptions: true
      }
    }
  ],
  production: [
    {
      transporter: Winston.transports.File,
      options: {
        name: 'File',
        filename: 'foo.log'
      }
    }
  ],
  test: [
    // your transports for test
  ]
};

If no matching environment-section can be found in your configuration file, no transports will be added.

Author

Stefan Walther

License

MIT


This file was generated by verb-generate-readme, v0.6.0, on August 17, 2018.