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.

Emacs 29.1 (Org mode 9.6.6)