Skip to content
/ golc Public

Colorful logging utility with log levels 🌈

License

Notifications You must be signed in to change notification settings

vinzdef/golc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

About

Colorful logging utility with log levels 🌈

Resources

License

Stars

Watchers

Forks

Packages

No packages published