Label: logme

logme is a logging library for C/C++ that lets applications control logging behavior at runtime. It allows developers to enable or disable logs, redirect output, and limit log volume without restarting the application.

The library helps build a flexible and scalable logging system. Developers can configure log levels, routing, and formatting through configuration instead of recompiling code. This approach simplifies debugging and improves observability in production environments.

logme also supports early (boot) logging, loading configuration from external sources, and merging early logs into the main logging pipeline. This ensures that the application preserves diagnostic information even during the earliest stages of initialization.

Log Source Profiling: Which Log Statement Is Responsible?

How log source profiling traces CPU and file I/O back to individual C and C++ call sites without disabling production diagnostics Log source profiling starts where a normal CPU profiler stops. A system profiler can tell you that a logging thread is consuming CPU and show write(), a file-backend worker, queue synchronization, memory copies, and

Migrating from spdlog to logme: From Loggers and Sinks to Channels and Backends

Migrating from spdlog to logme should not be a mechanical replacement of function names. On the surface, both libraries perform similar work: an application calls a logging API, the message gets a severity level, is formatted, and is sent to a file, console, or another output. However, there is little reason to migrate just to

Migrating from glog to logme: LOG, CHECK, PLOG, and VLOG in a New Logging Model

Migrating from glog to logme does not have to start with a full rewrite of every logging call. In large C++ projects, that is usually the wrong first step. Logging statements are spread across the codebase, and they often sit next to checks, conditions, diagnostic messages, CHECK, PLOG, VLOG, and debug-only calls. Replacing everything at

logme channels are more than named loggers

At first, logme channels can look like ordinary logger names. You may have channels such as HTTP, DB, TLS, or UI. At first glance, each log call seems to add nothing more than the corresponding label. A channel is a full runtime object. It decides whether a record is accepted, how it is formatted. Where