mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-29 12:27:38 -06:00
* Desktop: write log records to standard error and a rotating log file The desktop app installed no logger, so every log::warn!/log::error! in the workspace was discarded: GPU startup fallbacks, a lost wgpu device, the crash guard's panic report. A launch from a desktop menu has no terminal either, so there was nothing to attach to a bug report. apps/photocraft/src/logging.rs (no new dependency): - standard error plus <settings dir>/logs/photocraft.log; each launch rotates the previous log to photocraft.1.log and .2.log, so the log of a run that crashed survives the next start; the file is capped at 16 MiB - records logged before the settings directory is known are buffered (bounded) and written once the file is attached - default levels: info for photocraft*, warn for everything else; RUST_LOG replaces them with env_logger-style directives - never panics: an unusable directory or a failed write leaves standard error as the only sink The logger is installed first in main (so the panic hook is recorded) and the file is opened after argument parsing (--version and usage errors leave no file). Documented in docs/development.md (Logs). * Contributors: credit switch87 as Gert Pellin * Desktop: report an unusable log folder through the logger eprintln! panics when standard error is a broken pipe (a GUI launch on Windows); log::warn! reaches standard error the same way once the file sink has given up, and never panics. Same fix as storytold/vectorcraft#465.