package cat import ( "log" "os" "path/filepath" ) // debugLog writes CAT debug events to %APPDATA%/HamLog/cat.log so users can // diagnose mode/freq mismatches without rebuilding with -windowsconsole. // // Initialised lazily on first use. Falls back to the standard library // default logger (stderr, usually invisible in a Wails GUI build) if the // log file can't be opened. var debugLog = openDebugLog() func openDebugLog() *log.Logger { base, err := os.UserConfigDir() if err != nil { return log.Default() } dir := filepath.Join(base, "HamLog") if err := os.MkdirAll(dir, 0o755); err != nil { return log.Default() } f, err := os.OpenFile(filepath.Join(dir, "cat.log"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) if err != nil { return log.Default() } return log.New(f, "", log.LstdFlags|log.Lmicroseconds) } // DebugLogPath returns the path the cat.log file would be opened at, for // surfacing in the UI / docs. func DebugLogPath() string { base, err := os.UserConfigDir() if err != nil { return "" } return filepath.Join(base, "HamLog", "cat.log") }