using Spectre.Console; namespace HanaToolbox.Logging; /// /// Centralized logger. Errors are always shown; Info/Warn require --verbose. /// public sealed class AppLogger(bool verbose) { public bool IsVerbose => verbose; public void Error(string message) => AnsiConsole.MarkupLine($"[red]❌ {Escape(message)}[/]"); public void Warning(string message) { if (verbose) AnsiConsole.MarkupLine($"[yellow]⚠️ {Escape(message)}[/]"); } public void Info(string message) { if (verbose) AnsiConsole.MarkupLine($"[grey]{Escape(message)}[/]"); } public void Success(string message) { if (verbose) AnsiConsole.MarkupLine($"[green]✅ {Escape(message)}[/]"); } public void Step(string message) { if (verbose) AnsiConsole.MarkupLine($"[blue]⚙️ {Escape(message)}[/]"); } public void Always(string message) => AnsiConsole.MarkupLine(Escape(message)); private static string Escape(string s) => s .Replace("[", "[[") .Replace("]", "]]"); }