log-pose
v0.4.9
Published
Helps you to not get lost
Downloads
108
Readme
LogPose
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 outputresume()
— Resume the logging outputsetLevel(type: String|Boolean)
— Set a logging level to disable/enable verbs; iffalse
is given logging gets disabledsetLogger([stdout: Object])
— Set the standard-output for logging; if any falsy value is given, then the entire logging is disabled. Givenstdout
is used to output log messagesgetLogger([depth: Number[, stdout: Object]])
— Returns a shared logger instance;depth
is used on status formattingnewLogger(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
andverbose
.
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 enabledwrite(...)
— Prints always, without formattinginfo(...)
— Prints if level is> 0
debug(...)
— Prints if level is>= 1
verbose(...)
— Prints if level is>= 2
isInfo()
— Returnstrue
if level is> 0
isDebug()
— Returnstrue
if level is>= 1
isVerbose()
— Returnstrue
if level is>= 2
isEnabled()
— Returnstrue
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.