npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sleek-log

v2.1.0

Published

A simple, streamlined npm logging solution

Downloads

20

Readme

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