LogIt++
Header-only, macro-first C++ logging library
Loading...
Searching...
No Matches
Quick start and documentation map

Quick start

LogIt++ is a header-only, macro-first C++ logging library. The core and most native backends support C++11. OTLP, the Prometheus HTTP server, and MDBX use C++17 through their CMake feature options.

Minimal application

#include <logit.hpp>
int main() {
LOGIT_INFO("service started", 42);
}
int main()
#define LOGIT_ADD_CONSOLE_DEFAULT()
Macro for adding the default console logger.
#define LOGIT_WAIT()
Macro for waiting for all asynchronous loggers to finish processing.
#define LOGIT_INFO(...)
Unified umbrella header for the LogIt++ library.

Installation choices and complete CMake examples are collected in the Installation guide. Optional features and their dependency requirements are described in the Backend matrix.

Documentation map

  • Installation and CMake — Installation guide, including vendored, submodule, installed-package, and package-manager flows.
  • Macros and formatting — use the public <logit.hpp> entry point; the macro and pattern references are available from the API index.
  • Backends — Backend matrix, OTLP exporters, and Prometheus.
  • Stored logs and context — MemoryLogger, MdbxLogger, ILogReader, ILogSubscriber, and MDC/NDC are documented in the generated class reference and examples.
  • Asynchronous delivery — TaskExecutor and Queue back-pressure.
  • Performance — Benchmarks, including methodology and the historical snapshot disclaimer.
  • Choosing a logging library — Comparison with other C++ logging libraries, including trade-offs and the scope of the comparison.
  • Architecture decisions — Architecture Decision Records, including public API boundaries, executor ownership, snapshots, and dependency compatibility.
  • Roadmap — delivery checklist, separating delivered, planned, and intentionally deferred work.
  • Examples — browse the examples/ directory in the source repository; each optional example states the feature macro it requires.

Public API boundary

Application code should include the public umbrella headers and use the LOGIT_* macros. The logit::detail namespace and implementation headers are internal and carry no source or API compatibility guarantee.