The codebase logs everything via plain print() scattered across tasks/ws/components - rather than touch every call site, stdout/stderr are now duplicated (Tee) into logs/brewpi.<timestamp>.log alongside the existing tracer .mat files, line-buffered so a crash doesn't lose the tail of the log.