sl

simple.logger

A simple logger implementation on node.js

Showing:

Popularity

Downloads/wk

15

GitHub Stars

0

Maintenance

Last Commit

3yrs ago

Contributors

2

Package

Dependencies

2

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial