visual-logger
v2.1.10
Published
Visual logger for CLI in NodeJS
Maintainers
Readme
visual-logger
- API reference - TypeDoc
- Markdown reference - the full API and runtime behavior in one file. Also ships in the package.
- GitHub
Visual CLI logger for NodeJS
This is a simple logger that combines in-place terminal updates for showing things like progress, spinners, etc.
Demo as used in fyn:
Install
npm install visual-loggerUsage
Log lines scroll normally. Items are the in-place part: each one owns a line at the bottom of the screen that you update as work progresses, and removing it leaves the scrollback clean.
import VisualLogger from "visual-logger";
const logger = new VisualLogger();
logger.info("starting");
logger.addItem({ name: "install", color: "green", display: "Installing", spinner: true });
logger.updateItem("install", "resolving dependencies");
logger.updateItem("install", { msg: "linking", display: "Linking" });
logger.removeItem("install");
logger.info("done");API
Logging
debug(), verbose(), info(), log(), warn(), error() - one per level. Levels are debug (10), verbose (20), info (30), warn (40), error (50), fyi (60) and none (100); each gets its own color, exported as LevelColors.
Messages below the logger's level are saved to logData but not printed. The level defaults to info. Set it with the logLevel constructor option or the logLevel property:
const logger = new VisualLogger({ logLevel: "debug" });
logger.logLevel; // "debug"
logger.logLevel = "warn"; // an unknown name throws TypeErrorprefix(str | false) and setPrefix(str) set a prefix on subsequent lines.
Items
| method | description |
| --- | --- |
| addItem({ name, color, display, spinner, spinInterval, save }) | add an in-place item; spinner may be true, a style name or index |
| updateItem(name, msg \| { msg, display }) | update what the item shows |
| removeItem(name) | remove it |
| clearItems() | remove all of them |
| freezeItems(showItems?) / unfreezeItems() | stop and resume in-place updating - useful around output you don't want overwritten |
| setItemType(type) | normal, simple, or none to turn in-place rendering off (what CI wants) |
Item names may be strings or symbols.
Also exported
VisualLogger (also the default export), Levels, LevelColors, LogItemTypes, defaultOutput, and the VisualOutput / OutputInterface types for supplying your own output target.
License
Licensed under the Apache License, Version 2.0.


