@modulus/logger
v1.2.0
Published
Winston wrapper with simplified interface
Downloads
14
Readme
Modulus logger
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);