sleek-log

2.1.0 • Public • Published

Sleek Log

Build Status

Sleek Log is a minimalist, 0 dependency logging solution for node applications. The primary purpose of the package is for ease of diagnostics in a meaningful way. Sleek allows you to output data to your terminal with helpful color coding, as well as more complex data structures such as JSON and arrays.

If you require persistent storage and rotation of logs for future reference, this is also possible. The logging persistence is heavily inspired by the Python core logging functionality, and works in a similar way on the surface.

If you need integrations, such as sending log data to 3rd party services like Slack, you can set up callbacks which will be triggered at certain log levels to inform you when something happens

How to use

There are a few different ways to use sleek-log, primarily:

  • ephemeral, stdout logging
  • persistent, writing to a log file
  • integrated, using event listeners to send the log data to external services.

Ephermeral

To write log data to only the command line, you can simply instantiate a new logger as follows:

const Log = require('sleek-log'),
    , log = new Log();

Persistent

To write log data to a file for archival purposes, you can instantiate a logger as follows:

const Log = require('sleek-log'),
    , log = new Log({ filename: '/path/to/file.log', level: 'warning' });

The above instance will log everything above the specified level. in this case, 'warning', 'danger', and 'error' (see logging levels for more details)

Integrated

There is still some work to do around integrated logging, but it should currently be usable in a more manual state as follows:

// First, create either a persistent or ephermeral logger
const Log = require('sleek-log')
    , log = new Log();

// Next, register a callback at your desired log level
log.registerCallback('danger', (logData) => {
    // Whenever a 'danger' level log is fired, this callback will be fired as well
    // You can do whatever you want with the data here, like send it to slack, or another service
});

Logging Levels

To write data to your logs (depending on your config), once your logger has been created, you can write data to the following log levels:

  • debug
  • json (never written to the log file, but functionally equivalent to debug otherwise)
  • info
  • success
  • warning
  • danger
  • error

To write to a given level, simply call it as follows:

log.info('Something interesting has happened');
log.success('A process has completed');
log.warning('Something bad might happen');
log.danger('Running low on disk space');
log.error('An unexpected error has occured');

Depending on your selected log level, any log calls at - or above - your selected level will be written to the log file (if you are using a persistent log).

To do

  • Log rotation
    • Need to implement log rotation functionality and modes (increments, date, etc...)

Package Sidebar

Install

npm i sleek-log

Weekly Downloads

4

Version

2.1.0

License

MIT

Unpacked Size

73 kB

Total Files

13

Last publish

Collaborators

  • cpave3