Story: Logging and observability
Table of Contents
This page documents a story in Sprint 03. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Get the logging path right (proper Boost.Log severity channels and
sinks rather than ad-hoc std::cerr), triage the Valgrind leaks
surfaced earlier, and lift code coverage in the under-tested
modules.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 03 |
| Now | Story closed for the items that landed; the OpenSSL leak set carries forward BLOCKED into a successor sprint. |
| Waiting on | None at the story level — the OpenSSL leak follow-up is tracked separately as carry-over. |
| Next | None. |
| Last touched | 2025-12-30 |
Continued in: Valgrind leaks follow-up (sprint 05) — the BLOCKED
OpenSSL leaks are suppressed there, along with sqlgen residuals and
real leaks in ores.comms.tests.
Acceptance
- Boost.Log is used through its supported idioms.
- The non-OpenSSL Valgrind leaks are fixed or suppressed with a documented reason.
- Code coverage on the targeted modules rises measurably.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Implement proper Boost.Log usage | DONE | 2025-12-30 | 2025-12-30 | Replace ad-hoc logging with the supported Boost.Log idioms (severity channels, attribute scopes, sinks). |
| Investigate Valgrind leaks | DONE | 2025-12-30 | 2025-12-30 | Triage the leaks Valgrind reports and fix or suppress them with documented rationale. |
| Improve code coverage | DONE | 2025-12-30 | 2025-12-30 | Raise overall code coverage by adding tests for the under-tested modules surfaced by the coverage report. |
Decisions
- Boost.Log channels for component-level filtering
- lets a reader filter logs by component without parsing free-form prefixes.
- Suppress upstream Valgrind noise rather than chase it
- the OpenSSL false positives don't represent real leaks; documented in the suppression file.
Out of scope
- Replacing Boost.Log with another logging library.
- Distributed tracing (introduced later in a telemetry story).
See also
- ores.logging — the logging component this story rewires onto proper Boost.Log usage.
- CMake setup — the Valgrind / suppression details this story refers to.
- Build quality (sprint 01) and Build stabilisation (sprint 02) — predecessor stories that first surfaced the Valgrind issues.