diff --git a/src/Microsoft.Extensions.Logging.Console/ConsoleLogger.cs b/src/Microsoft.Extensions.Logging.Console/ConsoleLogger.cs index db50fe77..975c181f 100644 --- a/src/Microsoft.Extensions.Logging.Console/ConsoleLogger.cs +++ b/src/Microsoft.Extensions.Logging.Console/ConsoleLogger.cs @@ -236,7 +236,7 @@ private ConsoleColors GetLogLevelConsoleColors(LogLevel logLevel) case LogLevel.Critical: return new ConsoleColors(ConsoleColor.White, ConsoleColor.Red); case LogLevel.Error: - return new ConsoleColors(ConsoleColor.Red, ConsoleColor.Black); + return new ConsoleColors(ConsoleColor.Black, ConsoleColor.Red); case LogLevel.Warning: return new ConsoleColors(ConsoleColor.Yellow, ConsoleColor.Black); case LogLevel.Information: diff --git a/src/Microsoft.Extensions.Logging.Console/Internal/AnsiLogConsole.cs b/src/Microsoft.Extensions.Logging.Console/Internal/AnsiLogConsole.cs index f7ece29b..dfc04b2d 100644 --- a/src/Microsoft.Extensions.Logging.Console/Internal/AnsiLogConsole.cs +++ b/src/Microsoft.Extensions.Logging.Console/Internal/AnsiLogConsole.cs @@ -62,14 +62,34 @@ private static string GetForegroundColorEscapeCode(ConsoleColor color) { switch (color) { - case ConsoleColor.Red: + case ConsoleColor.Black: + return "\x1B[30m"; + case ConsoleColor.DarkRed: return "\x1B[31m"; case ConsoleColor.DarkGreen: return "\x1B[32m"; case ConsoleColor.DarkYellow: return "\x1B[33m"; + case ConsoleColor.DarkBlue: + return "\x1B[34m"; + case ConsoleColor.DarkMagenta: + return "\x1B[35m"; + case ConsoleColor.DarkCyan: + return "\x1B[36m"; case ConsoleColor.Gray: return "\x1B[37m"; + case ConsoleColor.Red: + return "\x1B[91m"; + case ConsoleColor.Green: + return "\x1B[92m"; + case ConsoleColor.Yellow: + return "\x1B[93m"; + case ConsoleColor.Blue: + return "\x1B[94m"; + case ConsoleColor.Magenta: + return "\x1B[95m"; + case ConsoleColor.Cyan: + return "\x1B[96m"; case ConsoleColor.White: return "\x1B[97m"; default: @@ -81,8 +101,22 @@ private static string GetBackgroundColorEscapeCode(ConsoleColor color) { switch (color) { + case ConsoleColor.Black: + return "\x1B[100m"; case ConsoleColor.Red: return "\x1B[101m"; + case ConsoleColor.Green: + return "\x1B[102m"; + case ConsoleColor.Yellow: + return "\x1B[103m"; + case ConsoleColor.Blue: + return "\x1B[104m"; + case ConsoleColor.Magenta: + return "\x1B[105m"; + case ConsoleColor.Cyan: + return "\x1B[106m"; + case ConsoleColor.White: + return "\x1B[107m"; default: return "\x1B[0m"; // Use default background color } diff --git a/test/Microsoft.Extensions.Logging.Test/ConsoleLoggerTest.cs b/test/Microsoft.Extensions.Logging.Test/ConsoleLoggerTest.cs index e99c4dc6..5a172097 100644 --- a/test/Microsoft.Extensions.Logging.Test/ConsoleLoggerTest.cs +++ b/test/Microsoft.Extensions.Logging.Test/ConsoleLoggerTest.cs @@ -317,8 +317,8 @@ public void WriteError_LogsCorrectColors() // Assert Assert.Equal(3, sink.Writes.Count); var write = sink.Writes[0]; - Assert.Equal(ConsoleColor.Black, write.BackgroundColor); - Assert.Equal(ConsoleColor.Red, write.ForegroundColor); + Assert.Equal(ConsoleColor.Red, write.BackgroundColor); + Assert.Equal(ConsoleColor.Black, write.ForegroundColor); write = sink.Writes[1]; Assert.Equal(TestConsole.DefaultBackgroundColor, write.BackgroundColor); Assert.Equal(TestConsole.DefaultBackgroundColor, write.ForegroundColor); @@ -744,4 +744,4 @@ public bool TryGetSwitch(string name, out LogLevel level) } } } -} \ No newline at end of file +}