Skip to content

❤️ (VCS/VTC) Logging Levels Contract #26

@OppaAI

Description

@OppaAI

⚠️ Issue: Log Pollution & Diagnostic Dilution

Without a strict logging contract, critical hardware failures are buried under a mountain of routine telemetry "info" noise. This makes post-mortem debugging (figuring out why the robot crashed into the cat) nearly impossible because the relevant error message is 5,000 lines up in the terminal buffer.

🎯 Location:

robot/vtc/pump.py
robot/vtc/vtc.py
vcs/regulator.py

🦠 Symptoms:

  • Terminal "scroll-blindness" during testing.
  • Important warnings (like a sensor returning None) are missed because they aren't color-coded or categorized.
  • High CPU overhead from formatting string logs that no one is actually reading.

🩺 Diagnosis:

The system lacks a Severity Standard. In ROS 2, logging is a shared resource. If your node is too chatty at the INFO level, it slows down the rosout bus. We need to map specific robot events to the appropriate ROS 2 log levels (DEBUG, INFO, WARN, ERROR, FATAL).

💡 Proposal:

The "VCS Logging Manifesto"
Define exactly what kind of event triggers which level.

  • DEBUG: High-frequency pulse data, individual trace_thru_conduit results, and thread-lock acquisitions. (Hidden by default).
  • INFO: State transitions (INIT -> RUNNING), successful YAML loading, and connection to ````jtop```.
  • WARN: The "Lifestream Guard" misses a beat, a sensor returns ```None```` once, or the Regulator hits a "Soft Limit."
  • ERROR: A YAML path fails the "Smoke Test," jtop is unreachable, or a DEGRADED state is triggered.
  • FATAL: Thread crashes, memory allocation failures, or the inability to find the robot_spec.yaml. The node must shut down.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions