A Simple Logger
npm install simple.loggerA simple logger for node.
2.0.0 released, a better viewport with colors!
* Proper JSDoc for ts types.
* Better object output.
* Colored prefixes based on channels.
``js
const { Logger, FileLogger } = require('simple.logger');
const optionalOptions = {
level: 'info',
prefix: '',
outStream: [process.stdout, process.stderr],
showTime: true,
shortTime: false,
showChannel: true,
};
// Sample constructions.
const logger = new Logger(optionalOptions);
const prefixLogger = new Logger('LOG PREFIX');
const fileLogger1 = new FileLogger('./logs.log', optionalOptions);
const fileLogger2 = new FileLogger(['./stdout.log', './stderr.log'], optionalOptions);
`
#### Options
* @typedef {Object} LoggerOptions - Constructor params for Logger.
* @prop {string} [level='info'] - Log level
* @prop {string} [prefix=''] - Prefix on every logging message.
* @prop {Object|Array
#### logger.changeLogLevel(level = 'info')
This method can change logger's verbose level on the fly and returns the previous level before changed.
#### logger.error([data][, ...args])
Same as [console.error([data][, ...args])](https://nodejs.org/api/console.html#console_console_error_data_args), with verbose level control.
#### logger.warn([data][, ...args]
Same as [console.warn([data][, ...args])](https://nodejs.org/api/console.html#console_console_warn_data_args), with verbose level control.
#### logger.info([data][, ...args])
Same as [console.info([data][, ...args])](https://nodejs.org/api/console.html#console_console_info_data_args), with verbose level control.
#### logger.log([data][, ...args])
Same as [console.log([data][, ...args])](https://nodejs.org/api/console.html#console_console_log_data_args), with verbose level control.
#### logger.debug([data][, ...args])
Same as [console.debug([data][, ...args])](https://nodejs.org/api/console.html#console_console_debug_data_args), with verbose level control.
#### logger.trace([message][, ...args])
Same as [console.trace([message][, ...args])](https://nodejs.org/api/console.html#console_console_trace_message_args), with verbose level control.
#### logger.raw([data][, ...args])
Same as logger.info([data][, ...args]), _with no log formatting._
_group and groupEnd will indent the whole line including formatted prefixes._
#### logger.group(label = '', channel = 'info')
#### logger.groupEnd(channel = 'info')
_enterBlock and exitBlock will only indent the context after formatted prefixes._
#### enterBlock(label, channel =info)
#### exitBlock(label, channel =info)`
A quick sample is provided as example.js
Licensed under MIT.