using System.IO; namespace ytLive.Helpers; /// /// Minimal file logger used to diagnose startup/shutdown crashes on Windows, /// where the WPF app has no visible console. Writes to /// %APPDATA%\ytLlive\startup.log, appending synchronously so entries survive /// a hard crash. /// public static class AppLog { private static readonly string LogPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ytLlive", "startup.log"); private static readonly object Gate = new(); public static void Write(string message) { try { lock (Gate) { Directory.CreateDirectory(Path.GetDirectoryName(LogPath)!); File.AppendAllText(LogPath, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} {message}{Environment.NewLine}"); } } catch { // Never let logging itself crash the app. } } public static void Write(Exception exception, string message) { Write($"{message}: {exception}"); } }