diff --git a/Geekbot.net/Geekbot.net.csproj b/Geekbot.net/Geekbot.net.csproj index c91512f..d943a8e 100755 --- a/Geekbot.net/Geekbot.net.csproj +++ b/Geekbot.net/Geekbot.net.csproj @@ -24,17 +24,15 @@ + + - - - - - 1.2.6 + diff --git a/Geekbot.net/Lib/GeekbotLogger.cs b/Geekbot.net/Lib/GeekbotLogger.cs index ec88290..c4a792b 100644 --- a/Geekbot.net/Lib/GeekbotLogger.cs +++ b/Geekbot.net/Lib/GeekbotLogger.cs @@ -1,19 +1,18 @@ using System; using Newtonsoft.Json; -using Serilog; namespace Geekbot.net.Lib { public class GeekbotLogger : IGeekbotLogger { private readonly bool _sumologicActive; - private readonly ILogger _serilog; + private readonly NLog.Logger _logger; private readonly JsonSerializerSettings _serializerSettings; public GeekbotLogger(bool sumologicActive) { _sumologicActive = sumologicActive; - _serilog = LoggerFactory.CreateLogger(sumologicActive); + _logger = LoggerFactory.CreateNLog(sumologicActive); _serializerSettings = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize, @@ -24,29 +23,22 @@ namespace Geekbot.net.Lib public void Debug(string source, string message, object extra = null) { - _serilog.Debug(CreateLogString("Debug", source, message, null, extra)); + _logger.Debug(CreateLogString("Debug", source, message, null, extra)); } public void Information(string source, string message, object extra = null) { - _serilog.Information(CreateLogString("Information", source, message, null, extra)); + _logger.Info(CreateLogString("Information", source, message, null, extra)); } public void Warning(string source, string message, Exception stackTrace = null, object extra = null) { - _serilog.Warning(CreateLogString("Warning", source, message, stackTrace, extra)); + _logger.Warn(CreateLogString("Warning", source, message, stackTrace, extra)); } public void Error(string source, string message, Exception stackTrace, object extra = null) { - _serilog.Error(CreateLogString("Error", source, message, stackTrace, extra)); - } - - private void HandleLogObject(string type, string source, string message, Exception stackTrace = null, object extra = null) - { - var logJson = CreateLogString(type, source, message, stackTrace, extra); - // fuck serilog - _serilog.Information(logJson, stackTrace + "}"); + _logger.Error(stackTrace, CreateLogString("Error", source, message, stackTrace, extra)); } private string CreateLogString(string type, string source, string message, Exception stackTrace = null, object extra = null) diff --git a/Geekbot.net/Lib/LoggerFactory.cs b/Geekbot.net/Lib/LoggerFactory.cs index 24df1ab..8631c11 100644 --- a/Geekbot.net/Lib/LoggerFactory.cs +++ b/Geekbot.net/Lib/LoggerFactory.cs @@ -1,27 +1,70 @@ using System; -using Serilog; -using Serilog.Sinks.SumoLogic; +using System.Text; +using NLog; +using NLog.Config; +using NLog.Targets; +using SumoLogic.Logging.NLog; namespace Geekbot.net.Lib { public class LoggerFactory { - public static ILogger CreateLogger(bool sumologicActive) + public static Logger CreateNLog(bool sumologicActive) { - var loggerCreation = new LoggerConfiguration(); - var template = "{Message}{NewLine}"; + var config = new LoggingConfiguration(); + if (sumologicActive) { Console.WriteLine("Logging Geekbot Logs to Sumologic"); - loggerCreation.WriteTo.SumoLogic(Environment.GetEnvironmentVariable("GEEKBOT_SUMO"), - outputTemplate: template); + config.LoggingRules.Add( + new LoggingRule("*", LogLevel.Info, LogLevel.Fatal, + new BufferedSumoLogicTarget() + { + Url = Environment.GetEnvironmentVariable("GEEKBOT_SUMO"), + SourceName = "GeekbotLogger", + Layout = "${message}", + UseConsoleLog = false, + MaxQueueSizeBytes = 500000, + FlushingAccuracy = 250, + MaxFlushInterval = 10000, + OptimizeBufferReuse = true, + MessagesPerRequest = 10, + RetryInterval = 5000, + Name = "Geekbot" + }) + ); } else { - loggerCreation.WriteTo.LiterateConsole(outputTemplate: template); - loggerCreation.WriteTo.RollingFile("Logs/geekbot-{Date}.txt", shared: true, outputTemplate: template); + config.LoggingRules.Add( + new LoggingRule("*", LogLevel.Trace, LogLevel.Fatal, + new ColoredConsoleTarget + { + Name = "Console", + Encoding = Encoding.Unicode, + Layout = "[${longdate} ${level:format=FirstCharacter}] ${message} ${exception:format=toString}" + }) + ); + + config.LoggingRules.Add( + new LoggingRule("*", LogLevel.Trace, LogLevel.Fatal, + new FileTarget + { + Name = "File", + Layout = "[${longdate} ${level}] ${message}", + Encoding = Encoding.Unicode, + LineEnding = LineEndingMode.Default, + MaxArchiveFiles = 30, + ArchiveNumbering = ArchiveNumberingMode.Date, + ArchiveEvery = FileArchivePeriod.Day, + ArchiveFileName = "./Logs/Archive/{#####}.log", + FileName = "./Logs/Geekbot.log" + }) + ); } - return loggerCreation.CreateLogger(); + + var loggerConfig = new LogFactory { Configuration = config }; + return loggerConfig.GetCurrentClassLogger(); } } } \ No newline at end of file