diff --git a/CreamInstaller/Forms/DebugForm.cs b/CreamInstaller/Forms/DebugForm.cs index 1622638..ae99b43 100644 --- a/CreamInstaller/Forms/DebugForm.cs +++ b/CreamInstaller/Forms/DebugForm.cs @@ -68,6 +68,25 @@ internal sealed partial class DebugForm : CustomForm if (!IsOpen) { IsOpen = true; + ProgramData.OnLog += msg => + { + Color color = msg switch + { + string m when m.Contains("not found", StringComparison.OrdinalIgnoreCase) => LogTextBox.Failure, + string m when m.Contains("Skipping", StringComparison.Ordinal) || m.Contains("skipped", StringComparison.Ordinal) || m.Contains("not accessible", StringComparison.Ordinal) => LogTextBox.Warning, + _ => LogTextBox.Action + }; + Log(msg, color); + }; + ProgramData.OnLogSteam += msg => + { + Color color = msg switch + { + string m when m.Contains("failed", StringComparison.OrdinalIgnoreCase) || m.Contains("timed out", StringComparison.OrdinalIgnoreCase) || m.Contains("cancelled", StringComparison.OrdinalIgnoreCase) || m.Contains("rate limited", StringComparison.OrdinalIgnoreCase) || m.Contains("unsuccessful", StringComparison.OrdinalIgnoreCase) || m.Contains("exceeded", StringComparison.OrdinalIgnoreCase) => LogTextBox.Failure, + _ => LogTextBox.Action + }; + Log(msg, color); + }; ProgramData.OnLogWarning += msg => Log(msg, LogTextBox.Warning); ProgramData.OnLogError += msg => Log(msg, LogTextBox.Error); } diff --git a/CreamInstaller/Utility/LogTextBox.cs b/CreamInstaller/Utility/LogTextBox.cs index 0121168..0db8b7e 100644 --- a/CreamInstaller/Utility/LogTextBox.cs +++ b/CreamInstaller/Utility/LogTextBox.cs @@ -10,6 +10,7 @@ internal static class LogTextBox internal static readonly Color Action = Color.LightBlue; internal static readonly Color Success = Color.LightGreen; internal static readonly Color Cleanup = Color.YellowGreen; + internal static readonly Color Failure = Color.IndianRed; internal static readonly Color Warning = Color.Yellow; internal static readonly Color Error = Color.DarkOrange; diff --git a/CreamInstaller/Utility/ProgramData.cs b/CreamInstaller/Utility/ProgramData.cs index 35af449..a9e3fdc 100644 --- a/CreamInstaller/Utility/ProgramData.cs +++ b/CreamInstaller/Utility/ProgramData.cs @@ -73,6 +73,8 @@ internal static class ProgramData internal static readonly string SteamLogPath = Path.Combine(DirectoryPath, "cream-steam.log"); internal static readonly string AppLogPath = Path.Combine(DirectoryPath, "CreamInstaller.log"); +internal static event Action OnLog; +internal static event Action OnLogSteam; internal static event Action OnLogWarning; internal static event Action OnLogError; @@ -91,6 +93,7 @@ internal static event Action OnLogError; { // ignored; logging must never crash the application } + OnLog?.Invoke(message); } internal static void LogSteam(string message) @@ -106,6 +109,7 @@ internal static event Action OnLogError; { // ignored; logging must never crash the application } + OnLogSteam?.Invoke(message); } internal static void LogWarning(string message)