awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Back to nlog/nlog

Open-source alternatives to NLog

30 open-source projects similar to nlog/nlog, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best NLog alternative.

  • hynek/structloghynek avatar

    hynek/structlog

    4,835View on GitHub↗

    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

    Python
    View on GitHub↗4,835
  • charmbracelet/logcharmbracelet avatar

    charmbracelet/log

    3,121View on GitHub↗

    This is a structured logging library designed to produce logs using key-value pairs, severity levels, and machine-readable formats. It provides a toolkit for creating logs that are consistent for both human review and machine parsing. The project is distinguished by its focus on terminal visualization, using a styling system to apply colors and prefixes to log entries for improved readability in consoles. It also includes a specialized adapter to convert standard library log calls into structured events by inferring severity levels from message prefixes. The library manages metadata through

    Gogolanglogging
    View on GitHub↗3,121
  • delgan/loguruDelgan avatar

    Delgan/loguru

    23,964View on GitHub↗

    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

    Python
    View on GitHub↗23,964

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Find more with AI search
  • qos-ch/logbackqos-ch avatar

    qos-ch/logback

    3,211View on GitHub↗

    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

    Java
    View on GitHub↗3,211
  • serilog/serilogserilog avatar

    serilog/serilog

    7,991View on GitHub↗

    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

    C#serilog
    View on GitHub↗7,991
  • unjs/consolaunjs avatar

    unjs/consola

    7,289View on GitHub↗

    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

    TypeScriptcliconsolefancy
    View on GitHub↗7,289
  • fpillet/nsloggerfpillet avatar

    fpillet/NSLogger

    4,988View on GitHub↗

    NSLogger is a remote logging framework and binary data logger designed to stream application traces from devices to a dedicated network log viewer. It enables the transmission of system traces over a network, utilizing SSL encryption to ensure secure telemetry transmission. The system distinguishes itself by supporting the embedding of raw binary data and images directly into log streams for visual inspection within the viewer. It also includes an offline log buffer that stores traces locally during network outages and automatically transmits them once connectivity is restored. The framework

    Objective-C
    View on GitHub↗4,988
  • gliderlabs/logspoutgliderlabs avatar

    gliderlabs/logspout

    4,694View on GitHub↗

    Logspout is a container log aggregator, forwarder, and routing engine designed to gather logs from Docker containers and route them to centralized external logging systems. It functions as a network-based utility that pipes container output to remote destinations such as syslog or TCP endpoints. The system features a dynamic routing engine that allows the creation and updating of log routing configurations and destination filters in real time via an HTTP interface without restarting the service. It utilizes an adapter-based architecture, enabling the development of custom output modules and t

    Godockerdocker-logssyslog
    View on GitHub↗4,694
  • tokio-rs/tracingtokio-rs avatar

    tokio-rs/tracing

    6,750View on GitHub↗

    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

    Rustdiagnosticslogginglogging-and-metrics
    View on GitHub↗6,750
  • inngest/inngestinngest avatar

    inngest/inngest

    5,499View on GitHub↗

    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

    Go
    View on GitHub↗5,499
  • stern/sternstern avatar

    stern/stern

    4,747View on GitHub↗

    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

    Godebuggingdevopskubernetes
    View on GitHub↗4,747
  • sirupsen/logrussirupsen avatar

    sirupsen/logrus

    25,736View on GitHub↗

    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

    Gogologginglogrus
    View on GitHub↗25,736
  • narrativescience-old/log.ioNarrativeScience-old avatar

    NarrativeScience-old/log.io

    4,839View on GitHub↗

    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

    TypeScriptlog-monitoringrealtimeui
    View on GitHub↗4,839
  • winstonjs/winstonwinstonjs avatar

    winstonjs/winston

    24,478View on GitHub↗

    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

    JavaScript
    View on GitHub↗24,478
  • rust-lang/logrust-lang avatar

    rust-lang/log

    2,518View on GitHub↗

    This project provides a lightweight logging facade for Rust applications, serving as a standardized interface for recording diagnostic messages. By decoupling application code from specific logging backends, it allows developers to maintain a consistent diagnostic surface while remaining independent of the underlying implementation. The framework enables the attachment of structured key-value metadata to log records, providing additional context that facilitates more granular filtering and analysis of application events. Its core design is built to be minimal, ensuring compatibility with reso

    Rustloggingrust-library
    View on GitHub↗2,518
  • kardianos/servicekardianos avatar

    kardianos/service

    4,821View on GitHub↗

    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

    Go
    View on GitHub↗4,821
  • fluent/fluent-bitfluent avatar

    fluent/fluent-bit

    7,946View on GitHub↗

    Fluent Bit is a cloud-native log shipper and unified telemetry collector designed as a resource-efficient data pipeline. It ingests logs, metrics, and traces from multiple sources, processing them in real-time before routing the data to external storage backends. The project functions as a real-time stream processor and OpenTelemetry log processor, capable of transforming and filtering data using SQL and conditional logic. It also acts as a distributed tracing agent that can sample traces to reduce data volume while preserving full request paths. The system provides reliable data delivery th

    C
    View on GitHub↗7,946
  • jorgebastida/awslogsjorgebastida avatar

    jorgebastida/awslogs

    4,992View on GitHub↗

    awslogs is a command line interface and terminal-based utility for querying, filtering, and streaming log events from AWS CloudWatch. It functions as a log management tool and cloud-native viewer for navigating log groups and streams. The tool provides capabilities for real-time log monitoring and the extraction of specific fields from JSON-formatted logs to simplify data review. It allows for the isolation of system issues through the use of time offsets, regular expressions, and custom filter patterns. The utility covers log event retrieval and the listing of available log groups and strea

    Python
    View on GitHub↗4,992
  • metrics-rs/metricsmetrics-rs avatar

    metrics-rs/metrics

    1,422View on GitHub↗

    This project is a unified observability framework for Rust applications, designed to capture, aggregate, and report performance telemetry. It provides a comprehensive toolkit for instrumenting code to track counters, gauges, and histograms, enabling developers to monitor application health and operational performance through a standardized interface. The library distinguishes itself by decoupling instrumentation sites from specific backend implementations through a global registry and trait-based abstractions. This architecture allows developers to swap telemetry exporters at runtime without

    Rustmetricsrust-langtelemetry
    View on GitHub↗1,422
  • ergo-services/ergoergo-services avatar

    ergo-services/ergo

    4,441View on GitHub↗

    Ergo is a distributed actor framework for Go that implements the Erlang distribution protocol, enabling the construction of resilient, concurrent applications that can communicate transparently with Erlang/OTP nodes. At its core, it provides an actor model with isolated lightweight processes, priority-ordered mailboxes, and a meta-process architecture that separates blocking I/O from sequential message handling to prevent actor freezing. The framework includes a Raft-inspired cluster consensus system for leader election and automatic failover, along with OTP-style supervision trees that organi

    Goactor-modelactorsdistributed
    View on GitHub↗4,441
  • actions/toolkitactions avatar

    actions/toolkit

    5,772View on GitHub↗

    The GitHub ToolKit for developing GitHub Actions.

    TypeScript
    View on GitHub↗5,772
  • meituan-dianping/loganMeituan-Dianping avatar

    Meituan-Dianping/Logan

    6,013View on GitHub↗

    Logan is a cross-platform mobile logging framework that collects, stores, and uploads client-side logs from iOS, Android, Web, and Flutter environments for centralized debugging and analysis. It provides a complete pipeline from client-side log buffering and file-based local storage through to server-side ingestion and a visual browser for inspecting parsed logs. The system uses a structured binary protocol to encode log entries with content, type, timestamp, and thread metadata, enabling consistent parsing across platforms. A log receiving server handles uploaded files, while a web-based int

    C
    View on GitHub↗6,013
  • xinliangnote/go-gin-apixinliangnote avatar

    xinliangnote/go-gin-api

    5,967View on GitHub↗

    go-gin-api is an API framework built on the Gin HTTP router that integrates common middleware and tools for rapid business development. It provides a modular structure for organizing API handlers and middleware, with built-in support for JWT token authentication to secure endpoints and GORM for database object-relational mapping and operations. The framework includes a gRPC service component for inter-service communication, along with middleware for collecting Prometheus metrics and generating Swagger API documentation from code annotations. It also features OpenTelemetry trace propagation fo

    Goapi-gincrongin
    View on GitHub↗5,967
  • pentaho/pentaho-kettlepentaho avatar

    pentaho/pentaho-kettle

    8,353View on GitHub↗

    Pentaho Kettle is an enterprise ETL data integration platform designed to extract, transform, and load data between disparate sources and target databases. It functions as a metadata-driven orchestrator that utilizes a visual workflow designer to create and manage complex sequences of data tasks and transformation pipelines. The system is distinguished by its distributed data processing engine, which executes workloads across clusters of server nodes to increase throughput. It employs a plugin-based architecture, allowing the platform to be extended via external JAR files to provide connectiv

    Java
    View on GitHub↗8,353
  • pfsense/pfsensepfsense avatar

    pfsense/pfsense

    5,675View on GitHub↗

    pfSense is an open-source operating system that turns a standard computer into a dedicated firewall and router with a web-based management interface. It runs on the FreeBSD kernel with the pf packet filter for stateful firewall and NAT processing, and manages all settings through a PHP-driven web interface that writes to XML configuration files. The platform provides a comprehensive set of network security capabilities accessible through its browser-based control panel. Users can configure packet filtering rules to control traffic flow between network segments, manage network address translat

    PHPfirewallfreebsdpfsense
    View on GitHub↗5,675
  • microsoft/msbuildMicrosoft avatar

    Microsoft/msbuild

    5,519View on GitHub↗

    MSBuild is a task-based build engine and programmatic framework used to compile and package .NET applications. It functions as a customizable orchestrator that executes sequences of targets to automate software compilation and deployment workflows using a structured XML-based configuration schema. The system allows for the creation of custom build tasks and reusable rules to handle unique compilation requirements. It supports multi-target framework development, enabling a single codebase to be compiled against various runtime versions to ensure compatibility across different platforms. The e

    C#
    View on GitHub↗5,519
  • dodyg/practical-aspnetcoredodyg avatar

    dodyg/practical-aspnetcore

    10,382View on GitHub↗

    This project is a comprehensive sample library and implementation guide for ASP.NET Core. It provides a collection of practical examples and projects that demonstrate how to build web applications, RESTful APIs, and high-performance services. The repository focuses on a variety of architectural patterns, including the development of Minimal APIs, contract-first gRPC services, and real-time communication using WebSockets and Server-Sent Events. It includes detailed implementations for user identity and security, such as token-based authentication and CSRF protection. The codebase covers a bro

    C#asp-net-coreaspnet-coreaspnetcore
    View on GitHub↗10,382
  • easylogging/easyloggingppeasylogging avatar

    easylogging/easyloggingpp

    3,938View on GitHub↗

    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

    C++
    View on GitHub↗3,938
  • gabime/spdloggabime avatar

    gabime/spdlog

    28,922View on GitHub↗

    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

    C++cppcpp11header-only
    View on GitHub↗28,922
  • liyifeng1994/ssmliyifeng1994 avatar

    liyifeng1994/ssm

    5,913View on GitHub↗

    This is a demonstration project that illustrates the classic SSM architecture pattern—combining SpringMVC, Spring, and MyBatis—for building scalable enterprise Java web applications. It serves as both a learning resource and a practical tutorial for developers who want to understand how these three frameworks work together in a full-stack context. The project provides a step-by-step guide for assembling SpringMVC, Spring, and MyBatis into a cohesive enterprise web application stack, covering everything from Spring dependency injection and transaction management to MyBatis database access and

    Javajavamybatisspring
    View on GitHub↗5,913