Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 2.86 KB

README.md

File metadata and controls

130 lines (90 loc) · 2.86 KB

This is golc 🌈📝

(Since clog was taken)

Version Downloads

A colorful logging utility for NodeJS programs.

Screenshot of golc

Installation 📦

npm i --save golc

It is Production Ready️™ as in: I am using it in production

Features 🍕

  • 6 log levels + disabling

  • customizable color schemes (via chalk API)

  • optional log badges (with label and kind)

Usage 🚀

Import it

const Golc = require('golc')

Make it

const L = new Golc('MyLogger')

... Use it!

function doTheJob() {
  try {
    job()
  } catch (e) {
    L.error(e)
  }

  L.info('Job done! 👍')
}

Make more!

const BLog = new Golc('BeautifulLogger', {...})
const SLog = new Golc('ShyLogger', {...})

Suppressing logs

By default log levels are set basing on the environment you're running in.

NODE_ENV=production sets logs to INFO level, others will have all the logs enabled.

You can suppress logs of a certain level just by setting the level on your logger.

L.level = L.ERROR // Will only log errors

Possible values are: NONE, ERROR, WARN, INFO, LOG, DEBUG, TRACE.

They go in order, so if you set L.level = L.LOG, you will get: ERROR, WARN, INFO and LOG.

Beware !!!

If you're logging costly operations, wrap your logic in conditions like so:

if (L.level >= L.INFO) {
  L.info(costlyOperation())
}

Customization 🎛

The constructor accepts a label, which will be used to tag your logs, and an options object:

const L = new Golc('Logger', options)

Where possible options are:

{
  withLabel: true, // Label of the logger in the badge (It's name)
  withKind: false, // Kind of log in the badge (Error, Warn, ...)
  withNewline: false, // Put a newline between the badge and the message
  styles: {
    error: {
      badge: ['bgRed', 'bold'], // Badge styles
      message: ['red', 'bgYellow'] // Message styles
    },
    warn: {...},
    info: {...},
    log: {...},
    debug: {...},
    trace: {...}
  }
}

A style object it's really just an array containing the chalk options that you want to combine, as strings.

You can check how that works right here! 🔍👀

License

MIT

Contributions / Suggestions

Welcome and welcome! 🤗

Inspiration

ulog