From 0d66480562c44168aa068de421aae2da8434dc1b Mon Sep 17 00:00:00 2001 From: JustArchi Date: Thu, 17 May 2018 09:54:22 +0200 Subject: [PATCH] Misc logging improvements --- ArchiSteamFarm/Logging.cs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/ArchiSteamFarm/Logging.cs b/ArchiSteamFarm/Logging.cs index 51ffba96d..938d3d771 100644 --- a/ArchiSteamFarm/Logging.cs +++ b/ArchiSteamFarm/Logging.cs @@ -58,12 +58,10 @@ namespace ArchiSteamFarm { return; } + ConfigurationItemFactory.Default.ParseMessageTemplates = false; LoggingConfiguration config = new LoggingConfiguration(); - ColoredConsoleTarget coloredConsoleTarget = new ColoredConsoleTarget("ColoredConsole") { - DetectConsoleAvailable = false, - Layout = GeneralLayout - }; + ColoredConsoleTarget coloredConsoleTarget = new ColoredConsoleTarget("ColoredConsole") { Layout = GeneralLayout }; config.AddTarget(coloredConsoleTarget); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, coloredConsoleTarget)); @@ -106,11 +104,16 @@ namespace ArchiSteamFarm { return; } + bool reconfig = false; + foreach (LoggingRule consoleLoggingRule in ConsoleLoggingRules.Where(consoleLoggingRule => !LogManager.Configuration.LoggingRules.Contains(consoleLoggingRule))) { LogManager.Configuration.LoggingRules.Add(consoleLoggingRule); + reconfig = true; } - LogManager.ReconfigExistingLoggers(); + if (reconfig) { + LogManager.ReconfigExistingLoggers(); + } } internal static void OnUserInputStart() { @@ -120,15 +123,22 @@ namespace ArchiSteamFarm { return; } - foreach (LoggingRule consoleLoggingRule in ConsoleLoggingRules) { - LogManager.Configuration.LoggingRules.Remove(consoleLoggingRule); + bool reconfig = false; + + foreach (LoggingRule rule in ConsoleLoggingRules) { + if (LogManager.Configuration.LoggingRules.Remove(rule)) { + reconfig = true; + } } - LogManager.ReconfigExistingLoggers(); + if (reconfig) { + LogManager.ReconfigExistingLoggers(); + } } private static void InitConsoleLoggers() { ConsoleLoggingRules.Clear(); + foreach (LoggingRule loggingRule in LogManager.Configuration.LoggingRules.Where(loggingRule => loggingRule.Targets.Any(target => target is ColoredConsoleTarget || target is ConsoleTarget))) { ConsoleLoggingRules.Add(loggingRule); } @@ -147,6 +157,7 @@ namespace ArchiSteamFarm { } HistoryTarget historyTarget = (HistoryTarget) LogManager.Configuration.AllTargets.FirstOrDefault(target => target is HistoryTarget); + if (historyTarget != null) { IPC.OnNewHistoryTarget(historyTarget); }