simple.logger

2.0.1 • Public • Published

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.

Screenshot

API

Constructor

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 <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.

Package Sidebar

Install

npm i simple.logger

Weekly Downloads

0

Version

2.0.1

License

MIT

Unpacked Size

14.2 kB

Total Files

6

Last publish

Collaborators

  • azusa0127