# klaudiosinani/signale

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/klaudiosinani-signale).**

9,176 stars · 233 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/klaudiosinani/signale
- Homepage: https://klaudiosinani.com/signale
- awesome-repositories: https://awesome-repositories.com/repository/klaudiosinani-signale.md

## Topics

`cli` `console` `library` `log` `logger` `nodejs`

## Description

Signale is a highly configurable logging library for Node.js applications that provides 16 built-in loggers, each with distinct badges, colors, and labels for different message types. It functions as a console logger that displays timestamps, labels, badges, and filenames in configurable log output, and includes an interactive mode that overwrites previous messages in place for real-time progress indicators.

The library distinguishes itself through several advanced capabilities, including a custom logger factory that lets developers create new logger types with unique badges, colors, and labels by extending a base logger class. It supports scoped module logging that prefixes messages with a scope name to identify the source component, a secrets filtering pipeline that removes sensitive strings from log output, and a runtime toggle switch to enable or disable all output without removing log calls from code.

Additional capabilities include the ability to route log output to multiple writable streams, configure display settings both globally and per instance, measure code execution duration with named timers, and control which metadata fields appear in log output such as timestamps, filenames, and labels. The library is configured through a project manifest or per-instance configuration methods.

## Tags

### Programming Languages & Runtimes

- [Node.js Logging Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-logging-libraries.md) — A highly configurable Node.js logging library with 16 built-in loggers, custom loggers, and interactive mode.
- [Cross-Platform Console Loggers](https://awesome-repositories.com/f/programming-languages-runtimes/cross-platform-console-loggers.md) — Functions as a console logger that displays timestamps, labels, badges, and filenames in configurable output.

### Part of an Awesome List

- [Log Appearance Configurations](https://awesome-repositories.com/f/awesome-lists/security/logging-and-configuration/log-appearance-configurations.md) — Ships extensive configuration of log appearance including metadata fields, colors, and badges.
- [In-Place Log Overwrites](https://awesome-repositories.com/f/awesome-lists/devtools/logging-and-output/progress-bar-logging-integrations/in-place-log-overwrites.md) — Implements an interactive mode that overwrites previous log messages for live progress updates.

### Data & Databases

- [In-Place Log Updaters](https://awesome-repositories.com/f/data-databases/in-memory-databases/in-memory-debug-logs/in-place-log-updaters.md) — Updates previously logged messages in place to show real-time progress without cluttering the console. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))

### Development Tools & Productivity

- [Custom Loggers](https://awesome-repositories.com/f/development-tools-productivity/custom-loggers.md) — Provides a factory to create custom logger types with unique badges, colors, and labels.
- [Console Line Overwriters](https://awesome-repositories.com/f/development-tools-productivity/interactive-task-runners/interaction-mode-control/console-line-overwriters.md) — Updates previously logged messages in place for real-time progress indicators.
- [Runtime Feature Toggles](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/application-configuration/feature-flag-management/runtime-feature-toggles.md) — Enables or disables all logger output at runtime via a boolean flag without removing log calls.
- [Logging Configurations](https://awesome-repositories.com/f/development-tools-productivity/logging-configurations.md) — Sets default display options for all loggers via a configuration block in the project manifest. ([source](https://klaudiosinani.com/signale))

### System Administration & Monitoring

- [Module Log Isolators](https://awesome-repositories.com/f/system-administration-monitoring/audit-log-filters/module-log-isolators.md) — Supports scoped module logging that prefixes messages with a scope name to identify the source component.
- [Interactive Console Loggers](https://awesome-repositories.com/f/system-administration-monitoring/interaction-logs/interactive-console-loggers.md) — Overwrites previous messages from the same interactive logger for progress indicators and live updates. ([source](https://klaudiosinani.com/signale))
- [Automatic Logger Naming](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/independent-logger-instances/automatic-logger-naming.md) — Supports scoped module logging that prefixes messages with a scope name to identify the source component.
- [Contextual Logger Instances](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/independent-logger-instances/contextual-logger-instances.md) — Creates a scoped logger instance that prefixes all messages with a scope name for module identification. ([source](https://klaudiosinani.com/signale))
- [Predefined Logger Sets](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/predefined-logger-sets.md) — Logs messages using one of 16 built-in loggers, each with a distinct badge and label for different message types. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))
- [Runtime Logger Toggles](https://awesome-repositories.com/f/system-administration-monitoring/log-output-formatting/runtime-logger-toggles.md) — Enables or disables all output from a logger instance at runtime without removing log calls from code. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))
- [Named Scope Loggers](https://awesome-repositories.com/f/system-administration-monitoring/request-logging/request-scoped-log-context/named-scope-loggers.md) — Groups log output under named scopes to identify the source module or component of each message. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))
- [Execution Timers](https://awesome-repositories.com/f/system-administration-monitoring/diagnostic-tools/diagnostics/execution-timers.md) — Measures code execution duration by starting and stopping named timers that return elapsed time.
- [Per-Instance Display Overrides](https://awesome-repositories.com/f/system-administration-monitoring/log-management/logger-hierarchies/independent-logger-instances/contextual-logger-instances/per-instance-display-overrides.md) — Overrides global display settings for a specific logger instance using a configuration method. ([source](https://klaudiosinani.com/signale))
- [Secrets Scrubbing](https://awesome-repositories.com/f/system-administration-monitoring/log-message-filtering/secrets-scrubbing.md) — Includes a secrets filtering pipeline that removes sensitive strings from log output.
- [Log Streaming](https://awesome-repositories.com/f/system-administration-monitoring/log-streaming.md) — Sends log output to one or more writable streams instead of the default standard output. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))
- [Writable Stream Forwarders](https://awesome-repositories.com/f/system-administration-monitoring/log-streaming/writable-stream-forwarders.md) — Directs log output to multiple writable streams by accepting an array of stream objects.
- [Secrets Scrubbing](https://awesome-repositories.com/f/system-administration-monitoring/logger-integrations/scaffolded-loggers/secrets-scrubbing.md) — Includes a secrets filtering pipeline that removes sensitive strings from log output.

### User Interface & Experience

- [Log Scope Prefixers](https://awesome-repositories.com/f/user-interface-experience/context-scoping/log-scope-prefixers.md) — Groups log messages under named scopes by prepending a scope identifier to each output line.
- [In-Place Log Overwrites](https://awesome-repositories.com/f/user-interface-experience/real-time-loggers/in-place-log-overwrites.md) — Implements an interactive mode that overwrites previous log messages for live progress updates.

### Security & Cryptography

- [Log Secret Filters](https://awesome-repositories.com/f/security-cryptography/secret-leak-prevention/log-secret-filters.md) — Removes sensitive strings from log messages and replaces them with a placeholder to prevent data leaks. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))

### Software Engineering & Architecture

- [Log Secret Sanitizers](https://awesome-repositories.com/f/software-engineering-architecture/pattern-matching-libraries/regex-pattern-matchers/secret-pattern-matching/log-secret-sanitizers.md) — Removes sensitive strings from log messages by replacing matched patterns with a placeholder.

### Testing & Quality Assurance

- [Code Block Timing](https://awesome-repositories.com/f/testing-quality-assurance/code-block-timing.md) — Measures the duration of code blocks by starting and stopping named timers, returning the elapsed time. ([source](https://cdn.jsdelivr.net/gh/klaudiosinani/signale@master/README.md))
