0.4.9 • Published 10 months ago

log-pose v0.4.9

Weekly downloads
305
License
MIT
Repository
-
Last release
10 months ago

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:

  • exception line.bgRed.bold
  • featured star.bgBlue.bold
  • failure warning.bgRed.white
  • success line.green
  • error line.red
  • tip star.yellow
  • link line.cyan
  • item line.gray
  • warn warning.bold
  • info info.blue
  • fail cross.red
  • wait reload.gray
  • end tick.cyan
  • log pointer.gray
  • ok tick.green

Using these you can short your code:

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

Color names are defined by Chalk.

0.4.9

10 months ago

0.4.8

10 months ago

0.4.7

3 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.7

4 years ago

0.3.6

4 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago