2.2.0 • Published 3 years ago
tiny-node-logger v2.2.0
Features
- 100% test coverage
- Zero dependencies 👌
- Colored log levels for ⚪ TRACE, 🔵 DEBUG, ⚫ INFO, 🟡 WARN and 🔴 ERROR
- Timestamps and flags to easily spot warnings (!) and errors (X)
- Right aligned filename & line numbers just like in devtools
- Handles nicely the logging of objects using
util
inspect - Daily inspiring quotes 🤦♂️
Install
npm install tiny-node-logger
Usage
Simple
const { log } = require("tiny-node-logger");
// You can either use the logger as a function...
log("Hello world");
// ...or as a tagged template
log`Hello world`;
Using import (ES6 / Typescript)
import logger, {debug} from "tiny-node-logger";
logger.level = "debug";
debug("Hello modules");
Levels
const logger = require("tiny-node-logger")
const {
trace, debug, info, warn, error
} = logger;
logger.level = "trace";
trace`this is a trace message`;
debug`this is a debug message`;
info`this is an info message`;
warn`this is a warn message`;
error`this is an error message`;
To just use log(...)
is similar to use log.info(...)
but it ignores any threshold set by log.level
.
For more examples please look in the fixture folder
Colors & Layout
Coloring and layout are done using Virtual Terminal control sequences.\ The output has been verified on:
- Windows 11 Command Prompt, PowerShell and Git bash
- MacOS Terminal
- Linux (via WSL/2 Ubuntu's bash)
Benchmark
console.log x 1,655 ops/sec ±4.35% (77 runs sampled)
simple x 1,596 ops/sec ±3.63% (85 runs sampled)
tagged templates ... x 1,465 ops/sec ±4.88% (75 runs sampled)
Fastest is console.log ...BUT NOT BY MUCH!!!
Credits
- Logo created using maketext.io
- Filename & line number extracted with v8 stack-trace-api
- HTML snapshots generated using ansi-to-html