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); }