spdlog is a high-performance, header-only or compiled C++ logging library. It provides synchronous and asynchronous logging to a wide variety of sinks including console (stdout/stderr with color), files (basic, rotating, daily, hourly), system facilities (syslog, systemd journal, Windows Event Log, Android), network (TCP, UDP, Kafka, Loki), and custom targets. The library uses the fmt library for formatting, supports custom pattern formatting with user-defined flags, backtrace logging, mapped diagnostic context (MDC), and configuration via environment variables or command-line arguments. It is designed for production use with extensive compile-time configuration options, thread safety, and minimal overhead. The architecture is modular: loggers manage a vector of sinks, each sink inherits from a base template that handles locking and formatting, and an optional async mode uses a thread pool with a bounded MPMC queue. The codebase is well-tested (Catch2) and benchmarked, with CI covering multiple compilers and platforms. It is a library, not an application, and is intended to be embedded into other C++ projects.
This repository provides a Logback appender for sending logs to Alibaba Cloud Log Service (SLS). It extends Logback's UnsynchronizedAppenderBase to asynchronously transmit log events to SLS with configurable formatting, MDC field processing, and custom credentials support. The architecture consists of a main appender class (LoghubAppender) that processes logging events, converts them to LogItems, and sends them via the underlying aliyun-log-producer. Key features include real-time transmission, asynchronous processing, MDC field capture with renaming capabilities, and support for custom credentials providers. The codebase demonstrates standard library patterns with one notably reusable component for MDC field processing.