From b5c060056013cea8eff44f6a986576c9a2aa956c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 14 Jul 2021 23:29:13 +0200 Subject: [PATCH] improved GetColor and SetColor --- ExtremelySimpleLogger/ConsoleSink.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ExtremelySimpleLogger/ConsoleSink.cs b/ExtremelySimpleLogger/ConsoleSink.cs index 9e2cde2..c301712 100644 --- a/ExtremelySimpleLogger/ConsoleSink.cs +++ b/ExtremelySimpleLogger/ConsoleSink.cs @@ -24,12 +24,14 @@ namespace ExtremelySimpleLogger { /// /// The log level to set the color for /// The color to use, or a with no value to clear the current color - public virtual void SetColor(LogLevel level, ConsoleColor? color) { + /// This instance, for chaining + public virtual ConsoleSink SetColor(LogLevel level, ConsoleColor? color) { if (color.HasValue) { this.ConsoleColors[level] = color.Value; } else { this.ConsoleColors.Remove(level); } + return this; } /// @@ -52,11 +54,11 @@ namespace ExtremelySimpleLogger { /// The message to log protected override void Log(Logger logger, LogLevel level, string s) { lock (this.locker) { - var hasColor = this.ConsoleColors.TryGetValue(level, out var color); - if (hasColor) - Console.ForegroundColor = color; + var color = this.GetColor(level); + if (color.HasValue) + Console.ForegroundColor = color.Value; Console.WriteLine(s); - if (hasColor) + if (color.HasValue) Console.ResetColor(); } }