|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System;
using System.IO;
namespace Microsoft.Extensions.Logging.Console
{
internal static class TextWriterExtensions
{
public static void WriteColoredMessage(this TextWriter textWriter, string message, ConsoleColor? background, ConsoleColor? foreground)
{
// Order: backgroundcolor, foregroundcolor, Message, reset foregroundcolor, reset backgroundcolor
if (background.HasValue)
{
textWriter.Write(AnsiParser.GetBackgroundColorEscapeCode(background.Value));
}
if (foreground.HasValue)
{
textWriter.Write(AnsiParser.GetForegroundColorEscapeCode(foreground.Value));
}
textWriter.Write(message);
if (foreground.HasValue)
{
textWriter.Write(AnsiParser.DefaultForegroundColor); // reset to default foreground color
}
if (background.HasValue)
{
textWriter.Write(AnsiParser.DefaultBackgroundColor); // reset to the background color
}
}
}
}
|