30 open-source projects similar to jakewharton/timber, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Timber alternative.
spdlog is a high-performance C++ logging library designed to record diagnostic messages and application events. It serves as an asynchronous logging framework and thread-safe library that coordinates access across concurrent threads to maintain message integrity. The project functions as a multi-target log router, distributing single events to multiple destinations such as consoles, files, and system daemons. It includes a log rotation manager that handles file lifecycles through basic, rotating, or daily rollover strategies to prevent disk exhaustion. The library covers a broad range of cap
This Android logging library is a toolkit for printing formatted, stylized, and filtered debug messages to the Android console and local files. It functions as a console log styler, a log file writer, and a formatter for converting complex data into human-readable text. The library provides specific utilities for customizing the visual appearance of logs by tracking thread information and call depth. It includes capabilities for converting JSON, XML, and collection data into readable formats and saving console entries to local files for offline analysis. The system covers broader log managem
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
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
Serilog is a structured logging library for .NET applications that records events as rich data objects instead of plain text strings. It functions as a multi-sink framework, allowing a single log stream to be emitted to diverse destinations such as files, consoles, and cloud databases through a structured event pipeline. The framework distinguishes itself through dynamic metadata enrichment, using log event enrichers to add contextual properties and telemetry to logs for improved traceability and analysis. It employs a routing system that filters, enriches, and directs these structured events
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
Logback is a Java logging framework used to record system events and diagnostic messages through a programmable API. It serves as a concrete implementation of the Simple Logging Facade for Java (SLF4J) and provides a structured logging engine for outputting events in machine-readable formats like JSON. The system distinguishes itself through an asynchronous log processor that utilizes circular queues and background workers to reduce performance overhead. It also features a log file rotation manager for size-based or time-based rollover with automatic compression, and the ability to update log
NLog is an open-source logging framework for .NET that functions as a structured logging library and log routing engine. It captures log events with named parameters as searchable data rather than plain text and directs these messages to various output destinations based on severity and source. The framework is designed as an extensible platform, supporting custom targets, layout renderers, and filters that can be loaded from external assemblies or defined in code. It features a dynamic configuration system that allows logging targets, rules, and layouts to be updated via XML or programmatic
CocoaLumberjack is a logging framework designed for Apple platforms, providing a system for capturing, filtering, and managing diagnostic messages within mobile and desktop applications. It serves as a tool for monitoring software health and troubleshooting runtime issues by recording application events across various severity levels. The framework utilizes a modular architecture that allows developers to define custom log levels and route diagnostic output to multiple concurrent destinations, including the system console, local files, and remote servers. It incorporates an asynchronous pipel
glog is a C++ logging framework designed for recording application events and system diagnostics. It provides a stream-based interface for capturing debugging information and managing system event persistence. The library includes a stack trace logger that captures execution call stacks and resolves memory addresses into readable function names. It also features a dedicated error handling module to manage system shutdown and reporting during fatal failures. Log lifecycle management is handled through automatic rotation and deletion of old files to prevent disk space exhaustion. The framework
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
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
Portable, simple and extensible C++ logging library
An OkHttp interceptor which has pretty logger for request and response. +Mock support
CleanroomLogger provides an extensible Swift-based logging API that is simple, lightweight and performant
Easyloggingpp is a C++ logging library and thread-safe logging framework used for recording diagnostic messages and application events. It functions as an asynchronous logger, processing messages on a background thread to reduce latency and prevent blocking the main execution path. The project includes a log rotation manager to automatically truncate or roll over files once they reach a specified disk size limit. It also serves as a performance tracking tool for measuring function execution timing and recording checkpoints to identify processing bottlenecks. The library covers a broad range
Monolog is a logging library that implements the PSR-3 standard to ensure interoperable log handling across PHP applications. It provides a standardized interface for managing log records, allowing the logging system to remain replaceable across different libraries and frameworks. The library features a routing engine that distributes log messages to multiple destinations, including files, sockets, databases, and external web services. It enables severity-based routing and integration with third-party cloud platforms, messaging apps, and email services for centralized log management. To supp
Consola is a JavaScript logging library and pluggable framework that provides a cross-platform console wrapper. It enables unified output formatting and stream wrapping across both web browser and Node.js terminal environments. The project distinguishes itself through a pluggable reporter system and the ability to intercept global system output, routing standard console and system streams through centralized logging handlers. It provides utilities for creating visually enhanced command line interfaces with support for tags and severity levels. The framework covers wide-ranging observability
AndroidPerformanceMonitor is a diagnostic library and debugging tool designed to detect UI freezes and monitor main thread responsiveness in Android applications. It functions as a UI block detector that identifies performance degradation by capturing thread stack dumps and performance logs. The tool utilizes a watchdog mechanism to monitor the main thread for hangs based on configurable time thresholds. When a block is detected, it captures a full call stack dump and triggers system-level alert notifications to notify developers immediately. The library includes capabilities for performance
Messenger is an asynchronous messaging system and event-driven communication layer designed to exchange events between decoupled components. It functions as an inter-process communication tool that removes direct dependencies between services by routing messages through a middleware layer. The system implements a pub-sub messaging model where components subscribe to specific event types and receive notifications when those events are triggered. It utilizes a central dispatcher to route asynchronous events from producers to registered subscribers. The project provides capabilities for distrib
This project is a comprehensive technical guide and diagnostic manual for analyzing memory, performance, and asynchronous behavior within Node.js applications. It provides detailed methods for asynchronous tracing, memory diagnostics, and performance analysis to resolve runtime errors and execution bottlenecks. The resource distinguishes itself by covering advanced diagnostic workflows, including the use of flame graphs for CPU profiling, the capture and comparison of heap snapshots for memory leak detection, and the mapping of asynchronous call stacks. It also provides technical guidance on
This project is a collection of specialized shell frameworks that provide object-oriented programming patterns, unit testing tools, and a standard utility library for Bash scripts. It enables the organization of script logic through the implementation of classes, objects, and singleton design patterns to create modular and reusable components. The framework includes a dedicated exception handling library that captures command failures using try-catch blocks and stores error metadata in objects. It also provides a unit testing framework that executes shell commands as independent test cases an
This project is a Go library and toolkit for cross-platform daemon orchestration. It provides a unified interface for registering and managing Go programs as background services across multiple operating systems, including Windows, macOS, and various Linux distributions. The toolkit acts as a multi-platform init manager, interfacing with systemd, OpenRC, and launchd. It automates the lifecycle of background processes, providing capabilities to install, uninstall, start, stop, and restart applications. Beyond service management, the library includes tools for environment detection to identify
RoadRunner is a high-performance application server and process manager designed to serve PHP applications using a persistent worker model. It eliminates bootload overhead and initialization time by keeping application processes alive between requests, acting as a protocol-agnostic proxy that routes traffic to a pool of supervised workers. The server is built with a plugin-based modular architecture, allowing it to be extended with custom Go plugins and compiled into tailored binaries. It distinguishes itself by providing a unified execution model for a wide array of communication protocols,
log.io is a real-time log monitoring system designed for streaming and visualizing system logs in a web browser as they are generated. It consists of a TCP log aggregator that collects formatted messages from remote sources and a file-based log streamer that monitors local files for changes. The system provides a web-based log viewer capable of ad-hoc visualization, allowing users to route specific active log streams to different screens for targeted monitoring. This is supported by a centralized message broker that redistributes incoming logs to web clients. The platform covers centralized
EasyLogger is a lightweight C/C++ logging library and asynchronous framework designed for embedded systems, IoT devices, and wearables. It functions as a resource-efficient logger and flash memory manager, providing tools for low-level debugging and system event recording with minimal ROM and RAM requirements. The project distinguishes itself through an asynchronous logging model that buffers messages to a separate thread, preventing logging operations from blocking real-time application execution. It includes a specialized flash memory manager that utilizes circular buffering to persist logs
Morgan is a Node.js HTTP logging middleware designed to record incoming requests and outgoing responses. It captures request metadata and timing to facilitate API request auditing and server performance monitoring. The project utilizes token-based string interpolation and custom log tokens to extract specific properties from HTTP objects. It supports multi-destination logging by routing formatted log strings to various writable streams and employs log output sanitization to escape control characters. Additional capabilities include predicate-based log filtering to conditionally omit entries
Flux is an application architecture framework and client-side state orchestrator. It implements a unidirectional state management pattern to ensure data flows in one direction, preventing unpredictable state changes and maintaining consistency across the user interface. The system functions as an action-driven state architecture where changes are triggered by plain object actions. A centralized dispatcher routes these actions to multiple data stores, which partition the application state and notify views of changes via a publisher-subscriber synchronization pattern. This approach provides a
Inngest is a durable execution framework and event-driven automation engine designed to orchestrate background workflows. It enables developers to build resilient, stateful processes by memoizing function steps, ensuring that long-running tasks can automatically resume from the last successful operation after failures, timeouts, or infrastructure restarts. The platform distinguishes itself through its event-driven architecture, which uses a schema-validated bus to trigger functions and coordinate complex, multi-step logic. It employs an onion-model middleware approach for cross-cutting concer
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