46 lines
1.1 KiB
C#
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("]", "]]");
|
|
}
|