Skip to content

grownjs/log-pose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LogPose

NPM version Build status codecov

Helps you to not get lost.

$ npm i log-pose --save
# or `yarn add log-pose`

API

Import the module and retrieve a shared logger instance.

import LogPose from 'log-pose';

// define logging level
LogPose.setLevel('verbose');

// get shared logger instance
const log = LogPose.getLogger();

// calling `newLogger()` returns a single method
const fail = LogPose.newLogger('my-app', 'verbose');
  • pause() — Pause the logging output
  • resume() — Resume the logging output
  • setLevel(type: String|Boolean) — Set a logging level to disable/enable verbs; if false is given logging gets disabled
  • setLogger([stdout: Object]) — Set the standard-output for logging; if any falsy value is given, then the entire logging is disabled. Given stdout is used to output log messages
  • getLogger([depth: Number[, stdout: Object]]) — Returns a shared logger instance; depth is used on status formatting
  • newLogger(prefix: String[, level: String|Number[, depth: Number, stdout: Object]]) — Returns a single logging method; actually, the shared logger is built from those methods. Methods are prefixed and receive a base level and depth; their output is skipped if given level is above the currently defined

Log levels are info, debug and verbose.

Logger

It's a function that can print statuses:

// single status
log('testing');

// prefixed status
log('kind', 'value');

// async status
async function main() {
  // single task delayed
  await log('long task', () => new Promise(resolve => setTimeout(resolve, 1000)));

  // prefixed task delayed
  await log('kind', 'value', () => new Promise(resolve => setTimeout(resolve, 1000)));

  // prefixed task delayed, with callback
  await log('write', 'filepath', done => setTimeout(() => {
    // custom feedback on logs
    done('filepath', 'failed', 'fail');
  }, 1000));
}

main();

Also, it have some methods:

  • printf(...) — Prints always, with formatting enabled
  • write(...) — Prints always, without formatting
  • info(...) — Prints if level is > 0
  • debug(...) — Prints if level is >= 1
  • verbose(...) — Prints if level is >= 2
  • isInfo() — Returns true if level is > 0
  • isDebug() — Returns true if level is >= 1
  • isVerbose() — Returns true if level is >= 2
  • isEnabled() — Returns true if level is > 0

Formatting works calling built-in util.format() on printing, e.g.

log.info('{%info.bgBlue.white Text with spaces and values: %s%}\n', 42);

Available symbols are:

  • tick → ✔
  • cross → ✖
  • star → ★
  • line → ─
  • info → ➲
  • reload → ↺
  • pointer → ›
  • warning → ⚠

Built-in types are:

  • exceptionline.bgRed.bold
  • featuredstar.bgBlue.bold
  • failurewarning.bgRed.white
  • successline.green
  • errorline.red
  • tipstar.yellow
  • linkline.cyan
  • itemline.gray
  • warnwarning.bold
  • infoinfo.blue
  • failcross.red
  • waitreload.gray
  • endtick.cyan
  • logpointer.gray
  • oktick.green

Using these you can short your code:

log.info('{%ok Text with spaces and values: %s%}\n', 42);

Color names are defined by picocolors.

About

Helps you to not get lost

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •