OBS-1 Subscriber foundation: layered Registry + EnvFilter + rotating file + JSON #357

Closed
opened 2026-07-31 22:40:35 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-31 22:40:35 +00:00 (Migrated from github.com)

Replace bare tracing_subscriber::fmt::init() with a layered Registry (reloadable EnvFilter NUNCIO_LOG->RUST_LOG->info, ANSI stderr, non-blocking daily-rotating file via tracing-appender, optional JSON). Add env-filter+json features + tracing-appender. KEYSTONE, lands first. Part of the Observability-to-9/10 program. Full brief: scratchpad/design/OBS-ROADMAP.md. DoD per docs/STORY-WORKFLOW.md; gate green; no unwrap/expect/panic in non-test; SSH-signed; PR to dev.

Replace bare tracing_subscriber::fmt::init() with a layered Registry (reloadable EnvFilter NUNCIO_LOG->RUST_LOG->info, ANSI stderr, non-blocking daily-rotating file via tracing-appender, optional JSON). Add env-filter+json features + tracing-appender. KEYSTONE, lands first. Part of the Observability-to-9/10 program. Full brief: scratchpad/design/OBS-ROADMAP.md. DoD per docs/STORY-WORKFLOW.md; gate green; no unwrap/expect/panic in non-test; SSH-signed; PR to dev.
KofTwentyTwo commented 2026-07-31 23:12:18 +00:00 (Migrated from github.com)

Delivered via PR #368 (OBS-1, squash-merged to dev). Layered Registry subscriber (crates/nunciod/src/logging.rs) replaces fmt::init(): reloadable EnvFilter (NUNCIO_LOG>RUST_LOG>info), human stderr console + non-blocking daily-rotating file at <data_dir>/logs/nunciod.log., JSON file sink via NUNCIO_LOG_FORMAT=json. WorkerGuard held in main as _log_guards; filter-parse failure degrades to info+warn (no panic); reload handle exposed (control RPC deferred). Keystone for OBS-2..9. 546 tests.

Delivered via PR #368 (OBS-1, squash-merged to dev). Layered Registry subscriber (crates/nunciod/src/logging.rs) replaces fmt::init(): reloadable EnvFilter (NUNCIO_LOG>RUST_LOG>info), human stderr console + non-blocking daily-rotating file at <data_dir>/logs/nunciod.log.<date>, JSON file sink via NUNCIO_LOG_FORMAT=json. WorkerGuard held in main as _log_guards; filter-parse failure degrades to info+warn (no panic); reload handle exposed (control RPC deferred). Keystone for OBS-2..9. 546 tests.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#357