From 7b06965f1466bd626c642944406698211d44b97e Mon Sep 17 00:00:00 2001 From: Daan Boerlage Date: Mon, 1 Nov 2021 00:34:50 +0100 Subject: [PATCH] Switch from Newtonsoft.Json to System.Text.Json in the logger --- src/Core/Logger/GeekbotLogger.cs | 13 +++++++------ src/Core/Logger/LogSource.cs | 5 ++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Core/Logger/GeekbotLogger.cs b/src/Core/Logger/GeekbotLogger.cs index 652faef..77b3872 100644 --- a/src/Core/Logger/GeekbotLogger.cs +++ b/src/Core/Logger/GeekbotLogger.cs @@ -1,5 +1,6 @@ using System; -using Newtonsoft.Json; +using System.Text.Json; +using System.Text.Json.Serialization; namespace Geekbot.Core.Logger { @@ -7,16 +8,16 @@ namespace Geekbot.Core.Logger { private readonly bool _logAsJson; private readonly NLog.Logger _logger; - private readonly JsonSerializerSettings _serializerSettings; + private readonly JsonSerializerOptions _serializerSettings; public GeekbotLogger(RunParameters runParameters) { _logAsJson = !string.IsNullOrEmpty(runParameters.SumologicEndpoint) || runParameters.LogJson; _logger = LoggerFactory.CreateNLog(runParameters); - _serializerSettings = new JsonSerializerSettings + _serializerSettings = new JsonSerializerOptions { - ReferenceLoopHandling = ReferenceLoopHandling.Serialize, - NullValueHandling = NullValueHandling.Include + ReferenceHandler = ReferenceHandler.IgnoreCycles, + DefaultIgnoreCondition = JsonIgnoreCondition.Never, }; Information(LogSource.Geekbot, "Using GeekbotLogger"); } @@ -53,7 +54,7 @@ namespace Geekbot.Core.Logger StackTrace = stackTrace, Extra = extra }; - return JsonConvert.SerializeObject(logObject, Formatting.None, _serializerSettings); + return JsonSerializer.Serialize(logObject, _serializerSettings); } if (source != LogSource.Message) return $"[{source}] - {message}"; diff --git a/src/Core/Logger/LogSource.cs b/src/Core/Logger/LogSource.cs index 02849ae..d2baff5 100644 --- a/src/Core/Logger/LogSource.cs +++ b/src/Core/Logger/LogSource.cs @@ -1,9 +1,8 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; +using System.Text.Json.Serialization; namespace Geekbot.Core.Logger { - [JsonConverter(typeof(StringEnumConverter))] + [JsonConverter(typeof(JsonStringEnumConverter))] public enum LogSource { Geekbot,