30 open-source projects similar to trentm/node-bunyan, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Node Bunyan alternative.
This is a logging framework for Node.js based on the log4j architecture. It provides a system for managing hierarchical loggers and severity thresholds, allowing application events to be recorded and categorized across different levels of importance. The framework is distinguished by its cluster-aware logging, which synchronizes and coordinates output across multiple process clusters into a unified stream. It also includes a dedicated log file rotation manager that automatically rolls files by date or size to prevent disk space exhaustion, and a network log transporter for sending data to rem
Logrus is a structured logging library for Go that produces machine-readable output using key-value pairs and JSON formatting. It serves as a pluggable logging framework providing a thread-safe event logger with configurable mutex locking to manage concurrent writes across multiple goroutines. The project distinguishes itself through a pluggable hook system that routes log entries to external services or custom destinations. It also features a contextual logger capable of attaching persistent metadata and request-scoped fields to entries to improve traceability. The framework covers broad ob
Signale is a formatted console logging library for Node.js applications. It serves as a pluggable logging framework and stream-based log router that allows users to record system events using customizable levels, colors, and output styles. The project distinguishes itself as an interactive console logger capable of overwriting previous messages to reduce terminal clutter during long-running tasks. It also functions as an application performance monitor, providing tools to measure and track execution time between specific code points to identify performance bottlenecks. The library covers a b
structlog is a structured logging library for Python that treats log entries as dictionaries instead of strings. This data-centric approach enables machine-readable output and precise data analysis by generating log entries as key-value pairs. It functions as both a standalone logging framework and a compatibility layer that adds structured capabilities to the Python standard library logging module. The library features a processor-pipeline architecture that passes log dictionaries through a sequence of functions to modify events or add metadata before final rendering. It includes a contextua
This project provides a comprehensive architectural framework and set of standardized patterns for building, securing, and scaling production-ready Node.js applications. It serves as a foundational guide for establishing consistent development workflows, operational observability, and reliable service integration across distributed software systems. The framework distinguishes itself by emphasizing a schema-first approach to API development, ensuring that interface definitions drive the creation of server stubs, client libraries, and type definitions. It promotes a cloud-native posture by int
Angle Grinder is a command line log processor and analytics tool used for parsing, filtering, and aggregating logs through a pipeline of text transformations. It functions as a text transformation pipeline that converts unstructured logs, as well as JSON and logfmt serialized data, into structured fields for analysis. The tool enables the computation of summary statistics, including running totals, counts, averages, and percentiles. It specifically supports time series log processing by partitioning data into discrete time windows to analyze event frequency and system behavior. The processin
Zap is a high-performance structured logging library designed for production environments. It provides a framework for generating machine-readable logs that minimize memory overhead and CPU usage, allowing for efficient event analysis and system monitoring. The library distinguishes itself through a focus on zero-allocation logging, utilizing buffer pooling to reduce garbage collection pressure during high-frequency operations. It enforces strict data typing through compile-time checks and structured field encoding, which ensures consistent output without the performance cost of reflection-ba
Zerolog is a structured logging library for Go designed for high-performance event capture and observability. It focuses on generating machine-readable JSON output while minimizing memory overhead through zero-allocation buffer encoding and strongly-typed field validation. The library distinguishes itself by providing a chainable, context-aware interface that allows developers to bind trace identifiers and metadata directly to request lifecycles. It supports complex diagnostic workflows by enabling independent logger instances, custom output routing to multiple concurrent destinations, and ev
Winston is a versatile logging library for Node.js designed to record system events and metadata. It functions as a multi-transport log manager that routes data to various destinations and a structured log formatter that transforms entries into JSON or plain text. The project is distinguished by its pluggable transport architecture, which decouples the logging interface from delivery mechanisms. This allows for the creation of custom transport extensions and the use of hierarchical logger instances to inherit configurations while attaching persistent metadata to downstream messages. The libr
Loguru is a Python logging library and thread-safe framework designed for recording system events and diagnostic messages. It functions as a structured logging tool that can serialize messages into JSON strings with metadata for automated parsing and analysis. The library includes a specialized exception tracker that captures unhandled crashes across main and background threads, rendering detailed stack traces that include local variable values. It further distinguishes itself through a unified routing pipeline that can intercept messages from the standard library logging module and dispatch
Pino is a high-performance logging library for Node.js applications designed to minimize overhead and prevent blocking the main event loop. It generates machine-readable logs using newline-delimited JSON, facilitating efficient ingestion and analysis by external monitoring and log aggregation platforms. The library distinguishes itself by offloading log processing and formatting to worker threads, ensuring that heavy logging tasks do not impact application responsiveness. It also provides a decoupled command-line utility that transforms structured production logs into human-readable text, sim
Lumberjack is a log rolling library for Go that manages the lifecycle of log files through size-based rotation and backup cleanup. It functions as a log retention manager to prevent disk exhaustion in Go services. The project optimizes log storage by compressing rotated files using the gzip algorithm and generating unique filenames via timestamped backups. It implements a retention policy that prunes historical records based on a maximum number of backups or a specified file age. The library implements the standard Go writer interface to integrate with logging libraries, providing a mechanis
Tailspin is a regex-based text colorizer and terminal log viewer designed to transform plain text streams into colorized output. It functions as a command line log highlighter and tailer that applies syntax highlighting to logs using regular expressions. The tool distinguishes itself through its ability to monitor files in real time and pipe live output through a highlighter. It recognizes and colors common data types such as IP addresses, UUIDs, HTTP methods, JSON objects, dates, and memory pointers. Users can define custom highlight styles and regex patterns to assign specific colors to uni
ngxtop is a real-time web server dashboard and traffic analyzer that transforms raw Nginx access logs into immediate visual metrics. It functions as a live monitor for tracking request rates, response codes, and bandwidth usage by parsing server logs as they are written. The tool extracts performance data from combined, common, and JSON log structures. It uses these parsed logs to identify high-traffic endpoints and server error patterns for troubleshooting. The system processes log streams through a pipeline that includes schema-based extraction, record filtering via evaluatable expressions
Cat is a distributed application performance monitoring tool and tracing framework designed to track transactions, latency, and health across distributed services. It functions as a Kubernetes-native monitoring stack that utilizes multi-language monitoring clients and a real-time alerting system to maintain system visibility. The system provides monitoring clients for Java, Go, Python, Node.js, and C++ to collect performance metrics and trace data. It distinguishes itself by sampling request flows to record call chains and identify bottlenecks, while using a monitoring engine to trigger immed
Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and diagnostic messages. It functions as a thread-safe logging library that synchronizes access across multiple concurrent execution threads to prevent data corruption during event recording. The framework features an asynchronous logger that processes messages on a background thread to minimize latency and prevent blocking the main application. It also acts as a log dispatcher, capable of routing data to local files, system syslog facilities, or remote network destinations for system
Pinpoint is a distributed application performance monitoring and tracing system. It functions as an application performance monitor and topology visualizer designed to analyze the execution behavior of large-scale distributed applications. The system uses bytecode instrumentation to monitor applications without requiring changes to the original source code. It captures call stacks and request flows across interconnected services to visualize system dependencies and generate real-time architectural maps of communication patterns. The platform covers a broad range of observability capabilities
This project is a structured tracing framework for Rust that serves as an async-aware instrumentation library and telemetry data collector. It provides a structured logging facade and the tools necessary to record, filter, and route event-based diagnostic data from both standard applications and embedded systems. The framework distinguishes itself through a core implementation that supports bare-metal and no-standard-library environments without requiring a dynamic memory allocator. It specifically handles the complexities of asynchronous workflows by propagating diagnostic contexts across fu
Boto3 is the AWS SDK for Python, providing a programmatic interface for managing and automating AWS cloud infrastructure and services. It serves as a cloud management API client and resource manager for provisioning, configuring, and scaling virtual servers, databases, and storage. The library enables the implementation of infrastructure-as-code through declarative templates and scripts, allowing for the deployment of identical resource stacks across multiple accounts and geographic regions. It also provides a framework for coordinating distributed workflows, serverless functions, and contain
Uptrace is an OpenTelemetry-based observability platform designed to collect, store, and analyze distributed traces, metrics, and logs. It functions as a centralized logging backend, a distributed tracing system, and a metrics engine to monitor application performance and system health. The platform is distinguished by AI-powered operational capabilities, allowing users to query telemetry data and manage monitoring dashboards using natural language. It specifically includes specialized monitoring for generative AI pipelines, tracking token usage and response quality for LLM interactions and r
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 labe
CloudEvents is an open specification for describing event data in a common format across cloud platforms and services. It defines a standard structure and set of metadata attributes for events, enabling interoperability across different systems so producers and consumers can exchange events without custom translation. The specification provides a protocol-agnostic serialization framework that maps CloudEvents attributes and payloads to multiple serialization formats including JSON, Avro, and Protobuf, and defines transport bindings for mapping events onto protocols like HTTP, AMQP, Kafka, MQTT
Vector is a high-performance observability data pipeline designed to collect, transform, and route logs, metrics, and traces across distributed infrastructure. It functions as a modular engine that decouples data ingestion from processing and transmission, utilizing a component-based architecture to connect diverse sources to multiple destinations. The project distinguishes itself through a focus on reliability and flow control. It implements backpressure-aware data movement to prevent data loss during traffic spikes and utilizes disk-backed event buffering to ensure durability during network
Stern is a Kubernetes command-line debugging tool and log aggregator designed for streaming and filtering logs from multiple pods and containers. It functions as a log tailing utility that consolidates real-time data from distributed resources into a single, color-coded output. The tool uses regular expressions to select pods and filter log content, allowing for the isolation of specific system events. It automatically tracks the lifecycle of resources, using a watch mechanism to attach to new pods that match filter criteria and removing deleted ones from the active view. Capabilities includ
AWS Powertools for Python is a utility framework designed for building production-ready Python functions on AWS Lambda. It provides a comprehensive suite of tools for observability, event parsing, routing, and idempotency management to streamline the development of serverless applications. The project distinguishes itself through specialized capabilities for event-driven architectures and AI agent orchestration. It enables the implementation of AI agents by exposing functions as tools via OpenAPI schemas and managing conversation states. Additionally, it features an idempotency library that p
Consola is a diagnostic logging utility and log output manager that provides a unified interface for Node.js and web browser environments. It functions as a scoped logging framework and a tool for capturing user text, confirmations, and selections through interactive console prompts. The project distinguishes itself through a system for creating specialized logger instances with inherited defaults and unique tags for contextual tracking. It also features a pluggable reporter interface that allows for the redirection of standard output to custom logging destinations and external reporters. Th
Kit is a microservices architectural framework and toolkit for Go. It provides a set of standardized primitives and abstractions for implementing service, endpoint, and transport layers in a decoupled manner. The framework focuses on system instrumentation through integrated distributed request tracing and a service instrumentation toolkit that utilizes counters and gauges to export performance data to external monitoring backends. It includes a structured logging library that records system events as key-value pairs to ensure compatibility with log aggregation tools. The project covers a br
This project is a namespace-based logging utility for JavaScript runtimes, including Node.js and web browsers. It provides a system for categorizing output into distinct namespaces to enable filtered visibility and color-coded identification of log sources. The utility allows for dynamic log control, where output streams can be toggled on or off via environment variables or method calls without restarting the application. It includes an execution time profiler that calculates the elapsed time between consecutive log calls to identify performance bottlenecks. Further capabilities include the
lnav is a terminal-based log viewer and analyzer designed for aggregating, filtering, and analyzing multiple log files in a single chronological view. It functions as a console application that can replace the system pager, providing syntax highlighting and document navigation for system or application logs. The project distinguishes itself by mapping unstructured log data to virtual SQLite tables, enabling the use of SQL and PRQL for structured data analysis, aggregations, and relational queries. It further differentiates its capability set through native integration for retrieving and taili
The Disruptor is a lock-free inter-thread messaging library and high-performance event bus. It implements a concurrent ring buffer designed for high-concurrency and low-latency message sequencing. The project utilizes a specific messaging architecture to eliminate lock contention, enabling high-throughput event routing and the exchange of continuous event streams between threads. It ensures strict first-in-first-out ordering and immediate data visibility across processing threads. The library provides capabilities for lock-free data streaming, sequential data ordering, and sequence-based eve