From 3cec432b39da1ede4236c5a364cfbe2e31eaa0dc Mon Sep 17 00:00:00 2001 From: Jeroen Saey Date: Tue, 18 Feb 2025 08:38:52 +0100 Subject: [PATCH 1/2] Updated --- EonaCat.Logger/EonaCat.Logger.csproj | 4 +- EonaCat.Logger/Managers/LogHelper.cs | 72 +++++++++++++++++------ EonaCat.Logger/Managers/LogManager.cs | 10 +++- EonaCat.Logger/Managers/LoggerSettings.cs | 4 +- Testers/EonaCat.Logger.Test.Web/Logger.cs | 6 +- 5 files changed, 67 insertions(+), 29 deletions(-) diff --git a/EonaCat.Logger/EonaCat.Logger.csproj b/EonaCat.Logger/EonaCat.Logger.csproj index 293b593..a8ead5f 100644 --- a/EonaCat.Logger/EonaCat.Logger.csproj +++ b/EonaCat.Logger/EonaCat.Logger.csproj @@ -3,7 +3,7 @@ .netstandard2.1; net6.0; net7.0; net8.0; net4.8; icon.ico latest - 1.4.1 + 1.4.2 EonaCat (Jeroen Saey) true EonaCat (Jeroen Saey) @@ -24,7 +24,7 @@ - 1.4.1+{chash:10}.{c:ymd} + 1.4.2+{chash:10}.{c:ymd} true true v[0-9]* diff --git a/EonaCat.Logger/Managers/LogHelper.cs b/EonaCat.Logger/Managers/LogHelper.cs index 1f00edd..e88d3e0 100644 --- a/EonaCat.Logger/Managers/LogHelper.cs +++ b/EonaCat.Logger/Managers/LogHelper.cs @@ -21,7 +21,7 @@ public class ErrorMessage public string Message { get; set; } } -internal static class LogHelper +public static class LogHelper { internal static event EventHandler OnException; @@ -156,7 +156,10 @@ internal static class LogHelper internal static void SendToFile(ILogger logger, LoggerSettings settings, ELogType logType, string message) { - if (logger == null || settings == null || !settings.EnableFileLogging || string.IsNullOrWhiteSpace(message)) return; + if (logger == null || settings == null || !settings.EnableFileLogging || string.IsNullOrWhiteSpace(message)) + { + return; + } if (IsLogLevelEnabled(settings, logType)) { @@ -166,21 +169,23 @@ internal static class LogHelper private static bool IsLogLevelEnabled(LoggerSettings loggerSettings, ELogType logType) { - if (loggerSettings == null) + if (logType == ELogType.NONE) { - OnLogLevelDisabled?.Invoke(null, new ErrorMessage { Message = "Settings is null." }); + OnLogLevelDisabled?.Invoke(null, new ErrorMessage { Message = "Logging is disabled for 'NONE' log type." }); return false; } - var isEnabled = loggerSettings.TypesToLog == null || loggerSettings.TypesToLog.Count == 0 || loggerSettings.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + var isEnabled = loggerSettings?.TypesToLog == null || loggerSettings.TypesToLog.Count == 0 || loggerSettings.TypesToLog.Contains(logType); + if (!isEnabled) { OnLogLevelDisabled?.Invoke(null, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled." }); return false; } + return true; } + public static void AddLogLevel(LoggerSettings settings, ELogType logType) { if (logType == ELogType.NONE) @@ -246,11 +251,16 @@ internal static class LogHelper { try { - bool isValid = TryGetEnumValue(logType, out ELogType currentLogType); - if (isValid) + if (TryGetEnumValue(logType, out ELogType currentLogType)) { - var isEnabled = splunkServer.TypesToLog == null || splunkServer.TypesToLog.Count == 0 || splunkServer.TypesToLog.Contains(currentLogType); - if (currentLogType == ELogType.NONE || !isEnabled) + if (currentLogType == ELogType.NONE) + { + splunkServer?.DisposeHttpClient(); + return; + } + + var isEnabled = (splunkServer?.TypesToLog == null || splunkServer.TypesToLog.Count == 0 || splunkServer.TypesToLog.Contains(currentLogType)); + if (!isEnabled) { splunkServer?.DisposeHttpClient(); return; @@ -340,8 +350,14 @@ internal static class LogHelper { try { - var isEnabled = grayLogServer.TypesToLog == null || grayLogServer.TypesToLog.Count == 0 || grayLogServer.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + if (logType == ELogType.NONE) + { + grayLogServer?.DisposeUdp(); + return; + } + + var isEnabled = (grayLogServer?.TypesToLog == null || grayLogServer.TypesToLog.Count == 0 || grayLogServer.TypesToLog.Contains(logType)); + if (!isEnabled) { grayLogServer?.DisposeUdp(); return; @@ -423,8 +439,14 @@ internal static class LogHelper { try { - var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + if (logType == ELogType.NONE) + { + server?.DisposeUdp(); + return; + } + + var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType)); + if (!isEnabled) { server?.DisposeUdp(); return; @@ -469,15 +491,21 @@ internal static class LogHelper { return; } - + var tasks = settings.TcpServers? .Where(server => !string.IsNullOrWhiteSpace(server.Hostname) && server.Port >= 0) .Select(async server => { try { - var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + if (logType == ELogType.NONE) + { + server?.DisposeTcp(); + return; + } + + var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType)); + if (!isEnabled) { server?.DisposeTcp(); return; @@ -522,8 +550,14 @@ internal static class LogHelper { try { - var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + if (logType == ELogType.NONE) + { + server?.DisposeUdp(); + return; + } + + var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType)); + if (!isEnabled) { server?.DisposeUdp(); return; diff --git a/EonaCat.Logger/Managers/LogManager.cs b/EonaCat.Logger/Managers/LogManager.cs index 113a8ae..4ad0ad3 100644 --- a/EonaCat.Logger/Managers/LogManager.cs +++ b/EonaCat.Logger/Managers/LogManager.cs @@ -247,10 +247,14 @@ namespace EonaCat.Logger.Managers return false; } - var isEnabled = Settings.TypesToLog == null || Settings.TypesToLog.Count == 0 || Settings.TypesToLog.Contains(logType); - if (logType == ELogType.NONE || !isEnabled) + if (logType == ELogType.NONE) + { + return false; + } + + var isEnabled = (Settings.TypesToLog == null || Settings.TypesToLog.Count == 0 || Settings.TypesToLog.Contains(logType)); + if (!isEnabled) { - OnLogLevelDisabled?.Invoke(this, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled, cannot log message" }); return false; } return true; diff --git a/EonaCat.Logger/Managers/LoggerSettings.cs b/EonaCat.Logger/Managers/LoggerSettings.cs index accdb41..b072a8e 100644 --- a/EonaCat.Logger/Managers/LoggerSettings.cs +++ b/EonaCat.Logger/Managers/LoggerSettings.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Net.Sockets; using System.Text.RegularExpressions; +using EonaCat.Json.Linq; using EonaCat.Logger.EonaCatCoreLogger; using EonaCat.Logger.EonaCatCoreLogger.Models; using EonaCat.Logger.Servers.GrayLog; @@ -119,6 +120,7 @@ public class LoggerSettings } } + private readonly List _defaultLogTypes = new List { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE }; private List _logTypes = new List { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE }; public List TypesToLog { @@ -128,7 +130,7 @@ public class LoggerSettings } set - { + { _logTypes = value; } } diff --git a/Testers/EonaCat.Logger.Test.Web/Logger.cs b/Testers/EonaCat.Logger.Test.Web/Logger.cs index fd5ddf3..0a27356 100644 --- a/Testers/EonaCat.Logger.Test.Web/Logger.cs +++ b/Testers/EonaCat.Logger.Test.Web/Logger.cs @@ -8,7 +8,6 @@ namespace EonaCat.Logger.Test.Web; public class Logger { private LogManager _logManager; - public List TypesToLog { get; set; } = new List(); public LoggerSettings LoggerSettings { get; } public bool UseLocalTime { get; set; } public string LogFolder { get; set; } = Path.Combine(FileLoggerOptions.DefaultPath, "logs"); @@ -25,12 +24,11 @@ public class Logger public Logger(string name = "EonaCatTestLogger", List typesToLog = null, bool useLocalTime = false, int maxFileSize = 20_000_000) { UseLocalTime = useLocalTime; - TypesToLog = typesToLog; LoggerSettings = new LoggerSettings { Id = name, - TypesToLog = TypesToLog, + TypesToLog = typesToLog, UseLocalTime = UseLocalTime, FileLoggerOptions = { @@ -136,7 +134,7 @@ public class Logger return; } - if (TypesToLog.Contains(ELogType.ERROR)) + if (LoggerSettings.TypesToLog.Contains(ELogType.ERROR)) { await _logManager.WriteAsync(exception, message, writeToConsole: writeToConsole).ConfigureAwait(false); } From b69c9eafb1e0f73ccc9fe5ca9910b1bfaa700d73 Mon Sep 17 00:00:00 2001 From: Jeroen Saey Date: Tue, 18 Feb 2025 09:07:06 +0100 Subject: [PATCH 2/2] Updated --- EonaCat.Logger/EonaCat.Logger.csproj | 4 ++-- EonaCat.Logger/Managers/LogManager.cs | 8 +++++++- EonaCat.Logger/Managers/LoggerSettings.cs | 4 ++++ Testers/EonaCat.Logger.Test.Web/Logger.cs | 6 ++++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/EonaCat.Logger/EonaCat.Logger.csproj b/EonaCat.Logger/EonaCat.Logger.csproj index a8ead5f..17cef7d 100644 --- a/EonaCat.Logger/EonaCat.Logger.csproj +++ b/EonaCat.Logger/EonaCat.Logger.csproj @@ -3,7 +3,7 @@ .netstandard2.1; net6.0; net7.0; net8.0; net4.8; icon.ico latest - 1.4.2 + 1.4.3 EonaCat (Jeroen Saey) true EonaCat (Jeroen Saey) @@ -24,7 +24,7 @@ - 1.4.2+{chash:10}.{c:ymd} + 1.4.3+{chash:10}.{c:ymd} true true v[0-9]* diff --git a/EonaCat.Logger/Managers/LogManager.cs b/EonaCat.Logger/Managers/LogManager.cs index 4ad0ad3..e0ef759 100644 --- a/EonaCat.Logger/Managers/LogManager.cs +++ b/EonaCat.Logger/Managers/LogManager.cs @@ -164,7 +164,13 @@ namespace EonaCat.Logger.Managers LoggerFactory?.Dispose(); IServiceCollection serviceCollection = new ServiceCollection(); - serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.TypesToLog.Min().ToLogLevel()) + + if (Settings.TypesToLog == null) + { + Settings.TypesToLog = new List { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE }; + } + + serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.TypesToLog.Max().ToLogLevel()) .AddEonaCatFileLogger(configuration => { var fileLoggerOptions = Settings.FileLoggerOptions; diff --git a/EonaCat.Logger/Managers/LoggerSettings.cs b/EonaCat.Logger/Managers/LoggerSettings.cs index b072a8e..5549231 100644 --- a/EonaCat.Logger/Managers/LoggerSettings.cs +++ b/EonaCat.Logger/Managers/LoggerSettings.cs @@ -126,6 +126,10 @@ public class LoggerSettings { get { + if (_logTypes == null) + { + _logTypes = _defaultLogTypes; + } return _logTypes; } diff --git a/Testers/EonaCat.Logger.Test.Web/Logger.cs b/Testers/EonaCat.Logger.Test.Web/Logger.cs index 0a27356..58788c0 100644 --- a/Testers/EonaCat.Logger.Test.Web/Logger.cs +++ b/Testers/EonaCat.Logger.Test.Web/Logger.cs @@ -38,6 +38,12 @@ public class Logger }, }; _logManager = new LogManager(LoggerSettings); + _logManager.Settings.TypesToLog.Clear(); + _logManager.Settings.LogInfo(); + while (true) + { + _logManager.WriteAsync("2222", ELogType.INFO, writeToConsole: false); + } } public void DeleteCurrentLogFile()