Merge branch 'master' of https://git.saey.me/EonaCat/EonaCat.Logger
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
<TargetFrameworks>.netstandard2.1; net6.0; net7.0; net8.0; net4.8;</TargetFrameworks>
|
<TargetFrameworks>.netstandard2.1; net6.0; net7.0; net8.0; net4.8;</TargetFrameworks>
|
||||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<FileVersion>1.4.1</FileVersion>
|
<FileVersion>1.4.3</FileVersion>
|
||||||
<Authors>EonaCat (Jeroen Saey)</Authors>
|
<Authors>EonaCat (Jeroen Saey)</Authors>
|
||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<Company>EonaCat (Jeroen Saey)</Company>
|
<Company>EonaCat (Jeroen Saey)</Company>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<EVRevisionFormat>1.4.1+{chash:10}.{c:ymd}</EVRevisionFormat>
|
<EVRevisionFormat>1.4.3+{chash:10}.{c:ymd}</EVRevisionFormat>
|
||||||
<EVDefault>true</EVDefault>
|
<EVDefault>true</EVDefault>
|
||||||
<EVInfo>true</EVInfo>
|
<EVInfo>true</EVInfo>
|
||||||
<EVTagMatch>v[0-9]*</EVTagMatch>
|
<EVTagMatch>v[0-9]*</EVTagMatch>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class ErrorMessage
|
|||||||
public string Message { get; set; }
|
public string Message { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static class LogHelper
|
public static class LogHelper
|
||||||
{
|
{
|
||||||
internal static event EventHandler<ErrorMessage> OnException;
|
internal static event EventHandler<ErrorMessage> OnException;
|
||||||
|
|
||||||
@@ -156,7 +156,10 @@ internal static class LogHelper
|
|||||||
|
|
||||||
internal static void SendToFile(ILogger logger, LoggerSettings settings, ELogType logType, string message)
|
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))
|
if (IsLogLevelEnabled(settings, logType))
|
||||||
{
|
{
|
||||||
@@ -166,21 +169,23 @@ internal static class LogHelper
|
|||||||
|
|
||||||
private static bool IsLogLevelEnabled(LoggerSettings loggerSettings, ELogType logType)
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isEnabled = loggerSettings.TypesToLog == null || loggerSettings.TypesToLog.Count == 0 || loggerSettings.TypesToLog.Contains(logType);
|
var isEnabled = loggerSettings?.TypesToLog == null || loggerSettings.TypesToLog.Count == 0 || loggerSettings.TypesToLog.Contains(logType);
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
OnLogLevelDisabled?.Invoke(null, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled." });
|
OnLogLevelDisabled?.Invoke(null, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled." });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void AddLogLevel(LoggerSettings settings, ELogType logType)
|
public static void AddLogLevel(LoggerSettings settings, ELogType logType)
|
||||||
{
|
{
|
||||||
if (logType == ELogType.NONE)
|
if (logType == ELogType.NONE)
|
||||||
@@ -246,11 +251,16 @@ internal static class LogHelper
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
bool isValid = TryGetEnumValue(logType, out ELogType currentLogType);
|
if (TryGetEnumValue(logType, out ELogType currentLogType))
|
||||||
if (isValid)
|
|
||||||
{
|
{
|
||||||
var isEnabled = splunkServer.TypesToLog == null || splunkServer.TypesToLog.Count == 0 || splunkServer.TypesToLog.Contains(currentLogType);
|
if (currentLogType == ELogType.NONE)
|
||||||
if (currentLogType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
splunkServer?.DisposeHttpClient();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEnabled = (splunkServer?.TypesToLog == null || splunkServer.TypesToLog.Count == 0 || splunkServer.TypesToLog.Contains(currentLogType));
|
||||||
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
splunkServer?.DisposeHttpClient();
|
splunkServer?.DisposeHttpClient();
|
||||||
return;
|
return;
|
||||||
@@ -340,8 +350,14 @@ internal static class LogHelper
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var isEnabled = grayLogServer.TypesToLog == null || grayLogServer.TypesToLog.Count == 0 || grayLogServer.TypesToLog.Contains(logType);
|
if (logType == ELogType.NONE)
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
grayLogServer?.DisposeUdp();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEnabled = (grayLogServer?.TypesToLog == null || grayLogServer.TypesToLog.Count == 0 || grayLogServer.TypesToLog.Contains(logType));
|
||||||
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
grayLogServer?.DisposeUdp();
|
grayLogServer?.DisposeUdp();
|
||||||
return;
|
return;
|
||||||
@@ -423,8 +439,14 @@ internal static class LogHelper
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType);
|
if (logType == ELogType.NONE)
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
server?.DisposeUdp();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType));
|
||||||
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
server?.DisposeUdp();
|
server?.DisposeUdp();
|
||||||
return;
|
return;
|
||||||
@@ -469,15 +491,21 @@ internal static class LogHelper
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tasks = settings.TcpServers?
|
var tasks = settings.TcpServers?
|
||||||
.Where(server => !string.IsNullOrWhiteSpace(server.Hostname) && server.Port >= 0)
|
.Where(server => !string.IsNullOrWhiteSpace(server.Hostname) && server.Port >= 0)
|
||||||
.Select(async server =>
|
.Select(async server =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType);
|
if (logType == ELogType.NONE)
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
server?.DisposeTcp();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType));
|
||||||
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
server?.DisposeTcp();
|
server?.DisposeTcp();
|
||||||
return;
|
return;
|
||||||
@@ -522,8 +550,14 @@ internal static class LogHelper
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var isEnabled = server.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType);
|
if (logType == ELogType.NONE)
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
server?.DisposeUdp();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEnabled = (server?.TypesToLog == null || server.TypesToLog.Count == 0 || server.TypesToLog.Contains(logType));
|
||||||
|
if (!isEnabled)
|
||||||
{
|
{
|
||||||
server?.DisposeUdp();
|
server?.DisposeUdp();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -163,7 +163,13 @@ namespace EonaCat.Logger.Managers
|
|||||||
LoggerFactory?.Dispose();
|
LoggerFactory?.Dispose();
|
||||||
|
|
||||||
IServiceCollection serviceCollection = new ServiceCollection();
|
IServiceCollection serviceCollection = new ServiceCollection();
|
||||||
serviceCollection.AddLogging(builder => builder.SetMinimumLevel(Settings.TypesToLog.Min().ToLogLevel())
|
|
||||||
|
if (Settings.TypesToLog == null)
|
||||||
|
{
|
||||||
|
Settings.TypesToLog = new List<ELogType> { 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 =>
|
.AddEonaCatFileLogger(configuration =>
|
||||||
{
|
{
|
||||||
var fileLoggerOptions = Settings.FileLoggerOptions;
|
var fileLoggerOptions = Settings.FileLoggerOptions;
|
||||||
@@ -246,10 +252,14 @@ namespace EonaCat.Logger.Managers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isEnabled = Settings.TypesToLog == null || Settings.TypesToLog.Count == 0 || Settings.TypesToLog.Contains(logType);
|
if (logType == ELogType.NONE)
|
||||||
if (logType == ELogType.NONE || !isEnabled)
|
{
|
||||||
|
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 false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using EonaCat.Json.Linq;
|
||||||
using EonaCat.Logger.EonaCatCoreLogger;
|
using EonaCat.Logger.EonaCatCoreLogger;
|
||||||
using EonaCat.Logger.EonaCatCoreLogger.Models;
|
using EonaCat.Logger.EonaCatCoreLogger.Models;
|
||||||
using EonaCat.Logger.Servers.GrayLog;
|
using EonaCat.Logger.Servers.GrayLog;
|
||||||
@@ -119,16 +120,21 @@ public class LoggerSettings
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly List<ELogType> _defaultLogTypes = new List<ELogType> { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE };
|
||||||
private List<ELogType> _logTypes = new List<ELogType> { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE };
|
private List<ELogType> _logTypes = new List<ELogType> { ELogType.INFO, ELogType.WARNING, ELogType.ERROR, ELogType.TRAFFIC, ELogType.DEBUG, ELogType.CRITICAL, ELogType.TRACE };
|
||||||
public List<ELogType> TypesToLog
|
public List<ELogType> TypesToLog
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
if (_logTypes == null)
|
||||||
|
{
|
||||||
|
_logTypes = _defaultLogTypes;
|
||||||
|
}
|
||||||
return _logTypes;
|
return _logTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_logTypes = value;
|
_logTypes = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ namespace EonaCat.Logger.Test.Web;
|
|||||||
public class Logger
|
public class Logger
|
||||||
{
|
{
|
||||||
private LogManager _logManager;
|
private LogManager _logManager;
|
||||||
public List<ELogType> TypesToLog { get; set; } = new List<ELogType>();
|
|
||||||
public LoggerSettings LoggerSettings { get; }
|
public LoggerSettings LoggerSettings { get; }
|
||||||
public bool UseLocalTime { get; set; }
|
public bool UseLocalTime { get; set; }
|
||||||
public string LogFolder { get; set; } = Path.Combine(FileLoggerOptions.DefaultPath, "logs");
|
public string LogFolder { get; set; } = Path.Combine(FileLoggerOptions.DefaultPath, "logs");
|
||||||
@@ -25,12 +24,11 @@ public class Logger
|
|||||||
public Logger(string name = "EonaCatTestLogger", List<ELogType> typesToLog = null, bool useLocalTime = false, int maxFileSize = 20_000_000)
|
public Logger(string name = "EonaCatTestLogger", List<ELogType> typesToLog = null, bool useLocalTime = false, int maxFileSize = 20_000_000)
|
||||||
{
|
{
|
||||||
UseLocalTime = useLocalTime;
|
UseLocalTime = useLocalTime;
|
||||||
TypesToLog = typesToLog;
|
|
||||||
|
|
||||||
LoggerSettings = new LoggerSettings
|
LoggerSettings = new LoggerSettings
|
||||||
{
|
{
|
||||||
Id = name,
|
Id = name,
|
||||||
TypesToLog = TypesToLog,
|
TypesToLog = typesToLog,
|
||||||
UseLocalTime = UseLocalTime,
|
UseLocalTime = UseLocalTime,
|
||||||
FileLoggerOptions =
|
FileLoggerOptions =
|
||||||
{
|
{
|
||||||
@@ -40,6 +38,12 @@ public class Logger
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
_logManager = new LogManager(LoggerSettings);
|
_logManager = new LogManager(LoggerSettings);
|
||||||
|
_logManager.Settings.TypesToLog.Clear();
|
||||||
|
_logManager.Settings.LogInfo();
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
_logManager.WriteAsync("2222", ELogType.INFO, writeToConsole: false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteCurrentLogFile()
|
public void DeleteCurrentLogFile()
|
||||||
@@ -136,7 +140,7 @@ public class Logger
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TypesToLog.Contains(ELogType.ERROR))
|
if (LoggerSettings.TypesToLog.Contains(ELogType.ERROR))
|
||||||
{
|
{
|
||||||
await _logManager.WriteAsync(exception, message, writeToConsole: writeToConsole).ConfigureAwait(false);
|
await _logManager.WriteAsync(exception, message, writeToConsole: writeToConsole).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user