The supervisor process in cmd/main.go used fmt.Printf for
operational messages (error dump handling, version mismatch
fatal), while the KVM application uses zerolog throughout.
The plain-text output mixed with zerolog-formatted output on
the same stdout stream, breaking log parsability for anyone
collecting logs via journald or similar.
Replace the five fmt.Printf calls in createErrorDump() and
the version mismatch fatal in main() with a supervisorLogger
using the existing logging.GetSubsystemLogger infrastructure.
Add "supervisor" to subsystemDefaultLevels at InfoLevel so the
"error dump saved" message is not suppressed by the default
ErrorLevel threshold.
Intentionally left unchanged:
- Version flag output (fmt.Println) — CLI output, not logging
- Crash info written to log file (fmt.Fprintf) — file I/O
- fmt.Sprintf calls — string formatting, not logging
- setProcTitle — process title, not logging
Signed-off-by: Alex Howells <alex@howells.me>
* Enhance diagnostics logging with context-aware timeouts
* Add full system diagnostics logging on supervisor crash
* Clear diagnostics context after logging to prevent memory leaks
* remove pr.txt
* Refactor crash log handling to improve large log handling.
- Introduced `readFileTail` function to read only the last specified bytes from log files, preventing memory issues with large files.
- Updated `checkFailsafeReason` and `rpcGetDiagnostics` functions to utilize `readFileTail` for reading crash logs and application logs, respectively.
- Adjusted log retrieval logic to handle different byte limits for recent and older crash logs.
* Remove the cause of the large logs. No need to log our mdn
* Move to HTTP for diagnostics
* Fix linter
In prep to add golangci-lint, fix various linting issues.
* Make the `kvm` package a fully-qualified public package.
Signed-off-by: SuperQ <superq@gmail.com>