Almost all output goes to stdout with no levels: 299 cout against 28 cerr, mostly in Command.cpp, FireDomain.cpp and DataBroker.cpp.
This causes two problems:
- A passing unit-test run prints 34
ERROR: vector of parameters … should be valued lines, and none of them is an error. A real error would look identical.
- Simulation output (
FireNode[…] lines) and diagnostics share one stream, so scripts cannot tell them apart.
Suggested fix: a small logging header with levels (error/warning/info/debug) and a runtime threshold, sending errors and warnings to stderr. Then reclassify the call sites, which can be done gradually.
Worth doing before ensembles (#172). Easier after #164 (std::source_location).
Drafted with Claude Opus 5, reviewed by a maintainer.
Almost all output goes to stdout with no levels: 299
coutagainst 28cerr, mostly inCommand.cpp,FireDomain.cppandDataBroker.cpp.This causes two problems:
ERROR: vector of parameters … should be valuedlines, and none of them is an error. A real error would look identical.FireNode[…]lines) and diagnostics share one stream, so scripts cannot tell them apart.Suggested fix: a small logging header with levels (error/warning/info/debug) and a runtime threshold, sending errors and warnings to stderr. Then reclassify the call sites, which can be done gradually.
Worth doing before ensembles (#172). Easier after #164 (
std::source_location).Drafted with Claude Opus 5, reviewed by a maintainer.