About this project
Signale is a highly configurable logging library for Node.js, designed to be hackable and customizable to the core. It can be used for logging purposes, status reporting, and handling the output rendering process of other Node modules and applications.
Key features include:
- **19 out-of-the-box loggers**: Including `await`, `complete`, `error`, `debug`, `fatal`, `fav`, `info`, `note`, `pause`, `pending`, `star`, `start`, `success`, `wait`, `warn`, `watch`, and `log`.
- **Custom pluggable loggers**: Users can define custom loggers by specifying badge, color, label, log level, and stream options.
- **Scoped loggers**: Create scoped loggers from scratch or based on existing instances, inheriting configuration, timers, secrets, streams, and other settings.
- **Interactive mode**: Messages from interactive loggers override previous messages, useful for progress reporting.
- **Secrets filtering**: Sensitive information can be filtered from log messages and replaced with `[secure]`.
- **Timers**: Built-in timer functionality with `time()` and `timeEnd()` functions.
- **Multiple writable streams**: Support for single or multiple writable streams, configurable globally or per logger type.
- **Scaled logging levels**: Configurable log levels including `info`, `timer`, `debug`, `warn`, and `error`.
- **String interpolation**: Support for `%s` and `%d` style string interpolation.
- **Global configuration**: Configurable through `package.json` under the `signale` namespace.
- **Local configuration**: Override global settings per file or per logger instance.
- **TypeScript support**: Full TypeScript support.
- **Clean and beautiful output**: Well-formatted terminal output with badges, labels, colors, and optional date/timestamp/filename display.
The library provides a simple API with methods like `signale.success()`, `signale.error()`, `signale.scope()`, `signale.config()`, `signale.time()`, `signale.timeEnd()`, `signale.disable()`, `signale.enable()`, `signale.addSecrets()`, and `signale.clearSecrets()`.
Signale is used by projects including Boostnote, Docz, Remix by Ethereum, Semantic Release, Shower, Taskbook, and Vant.
The project is licensed under MIT and is sponsored by Better Stack.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.