@modulus/logger

1.2.0 • Public • Published

Modulus logger

version build coverage code climate license

A Winston wrapper with a simplified interface.

Install

npm install @modulus/logger

Usage

The returned object is a winston logger instance, so all behavior is documented on that project. The addition of a namespace prefix mimics behavior of our other favorite logger: debug.

const Logger = require('@modulus/logger')('namespace');

Logger.info('message', { example: true });

// writes to process.stdout
// 2015-11-28T01:38:45.979Z INFO namespace message {"example":true}

Log level

The default log level is info, but can be configured using the environment variable LOG_LEVEL.

Exceptions

All uncaught exceptions are automatically logged to stderr and the process is exited. There is no need to add an additional handler. If you would like to enable the additional behavior of writing all exceptions to a file, you can!

const Logger = require('@modulus/logger');

Logger.writeExceptions(PATH);

// you can still use the factory to get a logger instance for this file
var logger = Logger('namespace');
logger.info('message', { example: true });

Note, you must use the required module directly, and create a logger instance separately. You typically only need to do this in your main file, so the additional overhead is minimal.

Pre-exit procedure

You can also provide an synchronous function to call before exiting the process as a second parameter to writeExceptions, which should return a Boolean.

const Logger = require('@modulus/logger');

function exitOnError(exception) {
  // perform pre-exit process
  return true; // you could choose to not exit, based on the exception
}

Logger.writeExceptions(PATH, exitOnError);

Package Sidebar

Install

npm i @modulus/logger

Weekly Downloads

5

Version

1.2.0

License

MIT

Last publish

Collaborators

  • csell5
  • bsatrom
  • harlanj
  • fiveisprime
  • jackboberg
  • modulus_deploy