Rich Console Output
IAnsiConsole Service
IAnsiConsole Service// In IMyTargets.cs
[TargetDefinition]
public partial interface IMyTargets : IBuildAccessor
{
Target ShowWelcomeMessage => t => t
.DescribedAs("Displays a welcome message to the console.")
.Executes(() =>
{
// Access IAnsiConsole via GetService
var console = GetService<IAnsiConsole>();
console.WriteLine();
console.Write(new FigletText("Atom Build")
.LeftJustified()
.Color(Color.Blue));
console.WriteLine();
console.MarkupLine("[green]Welcome to your Atom-powered build![/]");
console.WriteLine();
// You can also use Logger, which uses Spectre.Console internally
Logger.LogInformation("This message is logged via ILogger, but formatted by Spectre.Console.");
});
Target ShowBuildSummary => t => t
.DescribedAs("Displays a summary table.")
.Executes(() =>
{
var console = GetService<IAnsiConsole>();
var table = new Table()
.Border(TableBorder.Rounded)
.AddColumn("[bold blue]Metric[/]")
.AddColumn("[bold green]Value[/]");
table.AddRow("Build ID", "12345");
table.AddRow("Version", "1.0.0");
table.AddRow("Status", "[green]SUCCESS[/]");
console.Write(table);
});
}Logging Integration
LogOptions
LogOptionsLast updated
Was this helpful?
