Logging Components

Install instructions here

Abstraction tower for xo-indentlog logging components:

_images/ditaa-01d2082c713efda265fcfd7aef6582b73b9cbb1b.png
basic_scope

Primary entry point for scope-indented logging. Lightweight with RAII semantics.

state_impl

Bookkeeping for internal state, managed by basic_scope.

log_streambuf

Custom streambuf implementation, buffering in memory.

log_config

Logging configuration, to control formatting behavior.

log_level

Categorize log messages by importance for filtering.

Log_streambuf

Indentlog relies on a custom std::streambuf implementation, xo::log_streambuf. log_streambuf captures content in an internal vector, expanding it on demand. To support pretty-printing, log_streambuf tracks current position relative to left margin

class streambuf {
}

class log_streambuf {
- solpos_: size_t
- buf_v_: vector
}

streambuf <|-- log_streambuf

log_streambuf