From 8246c7a862128f7161aa798eac26fe6716db9ae8 Mon Sep 17 00:00:00 2001 From: runebaas Date: Mon, 31 Aug 2020 18:46:00 +0200 Subject: [PATCH] When json logging is enabled, log it to the console without color or additional timestamp, also log the messages with the correct log level. Remove the logs folder. --- src/Bot/Logs/.keep | 0 src/Core/Logger/GeekbotLogger.cs | 49 ++++++++++---------------------- src/Core/Logger/LoggerFactory.cs | 44 ++++++++++++++-------------- 3 files changed, 36 insertions(+), 57 deletions(-) delete mode 100644 src/Bot/Logs/.keep diff --git a/src/Bot/Logs/.keep b/src/Bot/Logs/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/src/Core/Logger/GeekbotLogger.cs b/src/Core/Logger/GeekbotLogger.cs index 8d4a8eb..652faef 100644 --- a/src/Core/Logger/GeekbotLogger.cs +++ b/src/Core/Logger/GeekbotLogger.cs @@ -20,44 +20,25 @@ namespace Geekbot.Core.Logger }; Information(LogSource.Geekbot, "Using GeekbotLogger"); } - + public void Trace(LogSource source, string message, object extra = null) - { - _logger.Trace(CreateLogString("Trace", source, message, null, extra)); - } - + => _logger.Trace(CreateLogString("Trace", source, message, null, extra)); + public void Debug(LogSource source, string message, object extra = null) - { - if (_logAsJson) _logger.Info(CreateLogString("Debug", source, message, null, extra)); - else _logger.Debug(CreateLogString("Debug", source, message, null, extra)); - } - + => _logger.Debug(CreateLogString("Debug", source, message, null, extra)); + public void Information(LogSource source, string message, object extra = null) - { - _logger.Info(CreateLogString("Information", source, message, null, extra)); - } - + => _logger.Info(CreateLogString("Information", source, message, null, extra)); + public void Warning(LogSource source, string message, Exception stackTrace = null, object extra = null) - { - if (_logAsJson) _logger.Info(CreateLogString("Warning", source, message, stackTrace, extra)); - else _logger.Warn(CreateLogString("Warning", source, message, stackTrace, extra)); - } - + => _logger.Warn(CreateLogString("Warning", source, message, stackTrace, extra)); + public void Error(LogSource source, string message, Exception stackTrace, object extra = null) - { - if (_logAsJson) _logger.Info(CreateLogString("Error", source, message, stackTrace, extra)); - else _logger.Error(stackTrace, CreateLogString("Error", source, message, stackTrace, extra)); - } + => _logger.Error(stackTrace, CreateLogString("Error", source, message, stackTrace, extra)); - public NLog.Logger GetNLogger() - { - return _logger; - } + public NLog.Logger GetNLogger() => _logger; - public bool LogAsJson() - { - return _logAsJson; - } + public bool LogAsJson() => _logAsJson; private string CreateLogString(string type, LogSource source, string message, Exception stackTrace = null, object extra = null) { @@ -74,10 +55,10 @@ namespace Geekbot.Core.Logger }; return JsonConvert.SerializeObject(logObject, Formatting.None, _serializerSettings); } - + if (source != LogSource.Message) return $"[{source}] - {message}"; - - var m = (MessageDto) extra; + + var m = (MessageDto) extra; return $"[{source}] - [{m?.Guild.Name} - {m?.Channel.Name}] {m?.User.Name}: {m?.Message.Content}"; } } diff --git a/src/Core/Logger/LoggerFactory.cs b/src/Core/Logger/LoggerFactory.cs index bc129fc..bf3d926 100644 --- a/src/Core/Logger/LoggerFactory.cs +++ b/src/Core/Logger/LoggerFactory.cs @@ -12,12 +12,13 @@ namespace Geekbot.Core.Logger public static NLog.Logger CreateNLog(RunParameters runParameters) { var config = new LoggingConfiguration(); + var minLevel = runParameters.Verbose ? LogLevel.Trace : LogLevel.Info; if (!string.IsNullOrEmpty(runParameters.SumologicEndpoint)) { Console.WriteLine("Logging Geekbot Logs to Sumologic"); config.LoggingRules.Add( - new LoggingRule("*", LogLevel.Debug, LogLevel.Fatal, + new LoggingRule("*", minLevel, LogLevel.Fatal, new SumoLogicTarget() { Url = runParameters.SumologicEndpoint, @@ -27,11 +28,23 @@ namespace Geekbot.Core.Logger OptimizeBufferReuse = true, Name = "Geekbot" }) - ); + ); + } + else if (runParameters.LogJson) + { + config.LoggingRules.Add( + new LoggingRule("*", minLevel, LogLevel.Fatal, + new ConsoleTarget + { + Name = "Console", + Encoding = Encoding.UTF8, + Layout = "${message}" + } + ) + ); } else { - var minLevel = runParameters.Verbose ? LogLevel.Trace : LogLevel.Info; config.LoggingRules.Add( new LoggingRule("*", minLevel, LogLevel.Fatal, new ColoredConsoleTarget @@ -39,27 +52,12 @@ namespace Geekbot.Core.Logger Name = "Console", Encoding = Encoding.UTF8, Layout = "[${longdate} ${level:format=FirstCharacter}] ${message} ${exception:format=toString}" - }) - ); - - config.LoggingRules.Add( - new LoggingRule("*", minLevel, LogLevel.Fatal, - new FileTarget - { - Name = "File", - Layout = "[${longdate} ${level}] ${message}", - Encoding = Encoding.UTF8, - LineEnding = LineEndingMode.Default, - MaxArchiveFiles = 30, - ArchiveNumbering = ArchiveNumberingMode.Date, - ArchiveEvery = FileArchivePeriod.Day, - ArchiveFileName = "./Logs/Archive/{#####}.log", - FileName = "./Logs/Geekbot.log" - }) - ); + } + ) + ); } - - var loggerConfig = new LogFactory { Configuration = config }; + + var loggerConfig = new LogFactory {Configuration = config}; return loggerConfig.GetCurrentClassLogger(); } }