onf-logger

0.4.1 • Public • Published

onf-logger

Build Status Coverage Status npm

onf-logger wraps any native or non-native logging implementation and provides hooks and aliases for complete customization.

The default behavior is to wrap the console object, which is the native logger in most platforms. This can be changed via the logger.setLogger() API.

By wrapping each function, onf-logger allows for pre- and postprocessing and pre- and postlogging.

Customizing the logging

It is very easy to define or extend a custom object, known as a formatter, to handle logging and processing according to one's needs. The formatter needs to have access to the following functions, either by defining them directly on the object or via delegation:

  • postprocess
  • preprocess
  • prelog
  • postlog
  • getColor (only if needing access to the underlying color package)

Have a look at the source, specifically the wrap function, to see the order in which they are called, it is very straight-forward.

It may be simpler to have the object delegate to the provided base formatter as the date formatter does, and simply override what is needed in the custom formatter.

By default, the date formatter is used and is set at runtime. To change this, simply pass the custom formatter to the setLogger API.

Installation

npm i onf-logger

Examples

logger.error('Derp!');

logger.info('Help!');

logger.success('Hurray!');

// Disable the date formatter.
logger.disableDate();
logger.info('Oh noes, what day is it?');

// Disable coloring.
logger.disableColor();
logger.success('Hello, world!');

// Re-enable both.
logger.enableDate();
logger.enableColor();

// Only log errors.
logger.setLogLevel('WARN|ERROR|FATAL'); // Same as logger.setLogLevel('ERRORS_ALL')

// Reset to log everything.
logger.setLogLevel('ALL'); // Same as logger.setLogLevel(255)

// Change the date formatter's time template to only show hours and minutes (default is `{H}:{i}:{s}.{ms}`).
logger.getFormatter().setTimeTpl('{H}:{i}');

License

GPLv3

Author

Benjamin Toll

Readme

Keywords

Package Sidebar

Install

npm i onf-logger

Weekly Downloads

2

Version

0.4.1

License

GPLv3

Last publish

Collaborators

  • benjam72