logd is the centralized logging daemon for EriX.
Find a file
Erik Inkinen eadf68c793
Some checks failed
CI / test (push) Failing after 4s
CI / minimal-versions (push) Successful in 12s
CI / security (push) Successful in 1m29s
logd: drop unstable rustfmt options for stable toolchains
2026-03-23 10:19:55 +02:00
.github Refactor documentation to standardize terminology from "Milestone Alignment" to "Component Milestone Tracking" across issue and pull request templates, contributing guidelines, and roadmap. Update acceptance criteria and clarify logging contract details in README and ROADMAP. 2026-03-05 11:57:15 +02:00
src logd: silence split sink helper dead code in default builds 2026-03-23 10:16:34 +02:00
.editorconfig Initial commit 2026-03-04 18:16:06 +01:00
.gitignore Initial commit 2026-03-04 18:16:06 +01:00
ARCHITECTURE.md logd: add framebuffer mirror mode and refresh service docs 2026-03-11 11:10:23 +02:00
Cargo.toml logd: gate kernel-route disable on both console backends 2026-03-15 03:27:44 +02:00
CODE_OF_CONDUCT.md Initial commit 2026-03-04 18:16:06 +01:00
CONTRIBUTING.md Refactor documentation to standardize terminology from "Milestone Alignment" to "Component Milestone Tracking" across issue and pull request templates, contributing guidelines, and roadmap. Update acceptance criteria and clarify logging contract details in README and ROADMAP. 2026-03-05 11:57:15 +02:00
LICENSE Initial commit 2026-03-04 18:16:06 +01:00
linker.ld Add initial implementation of logd with CI configuration and linker script 2026-03-05 10:28:14 +02:00
README.md logd: add framebuffer mirror mode and refresh service docs 2026-03-11 11:10:23 +02:00
ROADMAP.md logd: add framebuffer mirror mode and refresh service docs 2026-03-11 11:10:23 +02:00
rustfmt.toml logd: drop unstable rustfmt options for stable toolchains 2026-03-23 10:19:55 +02:00
SECURITY.md docs: align security policy phase numbering 2026-03-11 05:28:14 +02:00

logd

logd is the centralized in-memory logging service for EriX.

It accepts structured append requests over IPC, stores records in a bounded ring, and serves cursor-based reads for diagnostics and validation flows.


Responsibilities

  • validate structured log append requests
  • assign monotonic record ids and timestamps
  • retain recent records in a fixed-size ring buffer
  • return deterministic read results through cursor traversal
  • mirror accepted records to console services when enabled

logd is not responsible for persistent storage or external log shipping.


IPC Surface

Implemented operations (see lib-ipc for wire structs/IDs):

  • IPC_PHASE1_LOGD_OP_APPEND
  • IPC_PHASE1_LOGD_OP_READ

Append responses include assigned record_id and timestamp. Read responses include deterministic cursor progression and NOT_FOUND when exhausted.


Runtime feature model

  • logd-runtime: core daemon behavior
  • logd-runtime-phase1-logging: base logging contract enablement
  • logd-runtime-phase1-time: timestamp source from timed
  • logd-runtime-phase3-serial: mirror appends to seriald
  • logd-runtime-phase3-framebuffer: mirror appends to both seriald and fbcond

Integration aliases (logd-integration-*) map to the same runtime behavior, with optional force-fail test injection in dedicated test modes.


Build and test

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test