From 56f1eb75f968012cd5b3f0439d7dd9885ebf3e1b Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Sun, 19 May 2024 06:02:28 +0200 Subject: [PATCH] ConsoleLog lock --- AyCode.Core/Loggers/AcConsoleLogWriter.cs | 40 +++++++++++------------ 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/AyCode.Core/Loggers/AcConsoleLogWriter.cs b/AyCode.Core/Loggers/AcConsoleLogWriter.cs index dd7ad5c..2ce216c 100644 --- a/AyCode.Core/Loggers/AcConsoleLogWriter.cs +++ b/AyCode.Core/Loggers/AcConsoleLogWriter.cs @@ -9,6 +9,8 @@ public interface IAcConsoleLogWriter : IAcTextLogWriterBase public class AcConsoleLogWriter : AcTextLogWriterBase, IAcConsoleLogWriter { + private static readonly object ForWriterLock = new(); + protected AcConsoleLogWriter() : this(null) { Initialize(); @@ -33,29 +35,25 @@ public class AcConsoleLogWriter : AcTextLogWriterBase, IAcConsoleLogWriter { if (logText.IsNullOrWhiteSpace()) return; - //lock (ForWriterLock) + lock (ForWriterLock) { - if (loglevel is > LogLevel.Trace and < LogLevel.Suggest) + switch (loglevel) { - //Console.ForegroundColor = ConsoleColor.White; - Console.WriteLine(logText); - return; - } - - if (loglevel <= LogLevel.Trace) - { - Console.ForegroundColor = ConsoleColor.Gray; - Console.WriteLine(logText); - } - else if (loglevel == LogLevel.Suggest) - { - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine(logText); - } - else - { - Console.ForegroundColor = loglevel == LogLevel.Warning ? ConsoleColor.Yellow : ConsoleColor.Red; - Console.WriteLine($"{AcEnv.NL}{logText}{AcEnv.NL}"); + case > LogLevel.Trace and < LogLevel.Suggest: + Console.WriteLine(logText); + return; + case <= LogLevel.Trace: + Console.ForegroundColor = ConsoleColor.Gray; + Console.WriteLine(logText); + break; + case LogLevel.Suggest: + Console.ForegroundColor = ConsoleColor.Cyan; + Console.WriteLine(logText); + break; + default: + Console.ForegroundColor = loglevel == LogLevel.Warning ? ConsoleColor.Yellow : ConsoleColor.Red; + Console.WriteLine($"{AcEnv.NL}{logText}{AcEnv.NL}"); + break; } Console.ForegroundColor = ConsoleColor.White;