JSPM

  • Created
  • Published
  • Downloads 49610
  • Score
    100M100P100Q154655F
  • License Apache-2.0

Enhanced Ansi Color Logging and Stringify for Node.js in type script

Package Exports

  • node-ansi-logger

Readme

Node ansi logger and stringify

npm version npm downloads Node.js CI CodeQL codecov styled with prettier linted with eslint TypeScript ESM


AnsiLogger is a lightweight, customizable color logger for Node.js.

If you like this project and find it useful, please consider giving it a star on GitHub and sponsoring it.

Buy me a coffee

Features

  • Simple and intuitive API for data logging.
  • No dependencies.
  • Customizable colors and apperance.
  • Supports environment variable NO_COLOR=1 (https://no-color.org/).
  • It is also possible to pass a top level logger (like Homebridge or Matter logger) and AnsiLogger will use it for output instead of console.
  • Includes also a fully customizable stringify funtion with colors (it is bigint aware and manage circular reference).

Getting Started

Prerequisites

  • Node.js 20-22-24 installed on your machine.

Installation

To get started with AnsiLogger in your package

npm install node-ansi-logger

Usage

Initializing AnsiLogger:

Create an instance of AnsiLogger.

import { AnsiLogger, AnsiLoggerParams, LogLevel } from 'node-ansi-logger';
const log = new AnsiLogger({logName: '<your name>'}); // Eventually other params in AnsiLoggerParams

To import the stringify functions

import { stringify, payloadStringify, colorStringify, mqttStringify, debugStringify } from 'node-ansi-logger';

Using the logger:

log.debug('Debug message...', ...parameters);
log.info('Info message...', ...parameters);
log.notice('Notice message...', ...parameters);
log.warn('Warning message', ...parameters);
log.error('Error message', ...parameters);
log.fatal('Fatal message', ...parameters);
log(LogLevel.WARN, 'Warning message', ...parameters)

Using the logger with colors inside the message:

log.debug(`Debug message ${YELLOW}with yellow part${db}`, ...);

Using the logger internal timer:

log.startTimer('Time sensitive code started')
log.stopTimer('Time sensitive code finished')

Using the stringify function:

stringify({...})
colorStringify({...})

Screenshot

Example Image

Contributing

Contributions to AnsiLogger are welcome.

License

This project is licensed under the MIT License - see the LICENSE file for details.