simple.logger
A 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.
API
Constructor
const Logger FileLogger = ; const optionalOptions = level: 'info' prefix: '' outStream: processstdout processstderr showTime: true shortTime: false showChannel: true;// Sample constructions.const logger = optionalOptions;const prefixLogger = 'LOG PREFIX';const fileLogger1 = './logs.log' optionalOptions;const fileLogger2 = './stdout.log' './stderr.log' optionalOptions;
Options
- @typedef {Object} LoggerOptions - Constructor params for Logger.
- @prop {string} [level='info'] - Log level <error|warn|info|log|debug|trace>.
- @prop {string} [prefix=''] - Prefix on every logging message.
- @prop {Object|Array} [outStream=[process.stdout, process.stderr]] - Output writable streams.
- @prop {boolean} [showTime=true] - Toggle date and time display in message prefixes.
- @prop {boolean} [shortTime=false] - Toggle date display in message prefixes.
- @prop {boolean} [showChannel=ture] - Toggle logging channel display in message prefixes.
- @prop {boolean} [colored=true] - Toggle colored style output.
Methods
logger.changeLogLevel(level = 'info')
This method can change logger's verbose level on the fly and returns the previous level before changed.
Message logging methods - All the following method will yield a message with a log prefix pertentially contains channel, timestamp and custom prefix.
logger.error([data][, ...args])
Same as console.error([data][, ...args]), with verbose level control.
logger.warn([data][, ...args]
Same as console.warn([data][, ...args]), with verbose level control.
logger.info([data][, ...args])
Same as console.info([data][, ...args]), with verbose level control.
logger.log([data][, ...args])
Same as console.log([data][, ...args]), with verbose level control.
logger.debug([data][, ...args])
Same as console.debug([data][, ...args]), with verbose level control.
logger.trace([message][, ...args])
Same as console.trace([message][, ...args]), with verbose level control.
logger.raw([data][, ...args])
Same as logger.info([data][, ...args])
, with no log formatting.
Grouping and Indenting - The following method will indent context and helps organizing logs better.
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)
Sample
A quick sample is provided as example.js
License
Licensed under MIT.