Giter VIP home page Giter VIP logo

sleek-log's Introduction

Sleek Log

Build Status npm GitHub code size in bytes

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

sleek-log's People

Contributors

cpave3 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.