From c7b2a07dd06554351e242f2592e61dc7fe931c3a Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Thu, 10 Jul 2025 06:57:09 +0200 Subject: [PATCH] logging --- Pilz.Configuration/Pilz.Configuration.csproj | 3 +- Pilz.Configuration/Settings.cs | 31 ++++++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Pilz.Configuration/Pilz.Configuration.csproj b/Pilz.Configuration/Pilz.Configuration.csproj index 122c128..32d3b58 100644 --- a/Pilz.Configuration/Pilz.Configuration.csproj +++ b/Pilz.Configuration/Pilz.Configuration.csproj @@ -7,10 +7,11 @@ - 3.2.4 + 3.2.5 + diff --git a/Pilz.Configuration/Settings.cs b/Pilz.Configuration/Settings.cs index a523818..5150e07 100644 --- a/Pilz.Configuration/Settings.cs +++ b/Pilz.Configuration/Settings.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using Castle.Core.Logging; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -12,6 +13,7 @@ public class Settings : ISettings protected JsonSerializerSettings serializerSettings; public virtual IReadOnlyCollection Childs => settings.Values; + public virtual ILogger Logger { get; set; } = NullLogger.Instance; public virtual T Get() where T : ISettingsNode, ISettingsIdentifier { @@ -23,7 +25,10 @@ public class Settings : ISettings if (Activator.CreateInstance() is T settingsNew) settingsNew.Reset(); else + { settingsNew = default; + Logger.WarnFormat("Not able to create new settings node instance {0}.", T.Identifier); + } // Try deserialize if (settingsJson.TryGetValue(T.Identifier, out var valueRaw)) @@ -32,11 +37,31 @@ public class Settings : ISettings // Populate if (settingsNew != null) - serializer.Populate(valueRaw.CreateReader(), settingsNew); + { + try + { + serializer.Populate(valueRaw.CreateReader(), settingsNew); + Logger.InfoFormat("Populated settings node {0}.", T.Identifier); + } + catch (Exception ex) + { + Logger.Error("Error populating settings node instance.", ex); + } + } // Deserialize (fallback) else if (valueRaw.ToObject() is T settingsDeserialized) - settingsNew = settingsDeserialized; + { + try + { + settingsNew = settingsDeserialized; + Logger.WarnFormat("Deserialied settings node {0} via fallback variant.", T.Identifier); + } + catch (Exception ex) + { + Logger.Error("Error deserializing settings node instance.", ex); + } + } } // Remember