Files
HanaToolbox/Logging/AppLogger.cs
2026-03-02 20:53:28 +01:00

46 lines
1.1 KiB
C#

using Spectre.Console;
namespace HanaToolbox.Logging;
/// <summary>
/// Centralized logger. Errors are always shown; Info/Warn require --verbose.
/// </summary>
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("]", "]]");
}