Composable logging without a large dependency stack.
Pure Log provides built-in and custom log levels, format-string messages, timestamps, source locations, colors, and several output types. Applications can use a traditional header interface or C++ modules and derive a project-specific singleton logger through the library's CRTP base.
Message creation and output stay separate.
Log callA level and formatted message create a log entry.
MetadataTime and source location can be chained onto the entry.
OutputConsole, file, or a custom sink receives the result.
Metadata is added where it is useful.
Each logging call returns an entry that can be enriched without requiring the same metadata on every line. The example application mixes formatted values, time, and source location.
debugger.log(
"Invalid value passed to parser: {}", 3
).time();
debugger.warn("This is a warning message.")
.location();
debugger.info(
"Informational message without additional data."
);
Flexible presentation with deliberately visible boundaries.
The library supports whole-message, part-specific, and level-specific formatting; buffered or immediate console output; file output; and user-defined sinks. The current repository does not present benchmarks, file rotation, or a documented thread-safety contract, so this portfolio does not imply those guarantees.