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 output -
resume()
— Resume the logging output -
setLevel(type: String|Boolean)
— Set a logging level to disable/enable verbs; iffalse
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. Givenstdout
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
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 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()
— 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.