Added a event thats gets fired when the logLevel is disabled
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<TargetFrameworks>.netstandard2.1; net6.0; net7.0; net8.0; net4.8;</TargetFrameworks>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<FileVersion>1.3.2</FileVersion>
|
||||
<FileVersion>1.3.3</FileVersion>
|
||||
<Authors>EonaCat (Jeroen Saey)</Authors>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Company>EonaCat (Jeroen Saey)</Company>
|
||||
@@ -24,7 +24,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<EVRevisionFormat>1.3.2+{chash:10}.{c:ymd}</EVRevisionFormat>
|
||||
<EVRevisionFormat>1.3.3+{chash:10}.{c:ymd}</EVRevisionFormat>
|
||||
<EVDefault>true</EVDefault>
|
||||
<EVInfo>true</EVInfo>
|
||||
<EVTagMatch>v[0-9]*</EVTagMatch>
|
||||
|
||||
@@ -63,10 +63,17 @@ public static class ExceptionExtensions
|
||||
|
||||
foreach (DictionaryEntry entry in data)
|
||||
{
|
||||
sb.Append(" | ")
|
||||
.Append(entry.Key)
|
||||
.Append(": ")
|
||||
.AppendLine(entry.Value.ToString());
|
||||
if (entry.Key != null)
|
||||
{
|
||||
sb.Append(" | ")
|
||||
.Append(entry.Key);
|
||||
}
|
||||
|
||||
if (entry.Value != null)
|
||||
{
|
||||
sb.Append(": ")
|
||||
.AppendLine(entry.Value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
|
||||
@@ -23,7 +23,9 @@ public class ErrorMessage
|
||||
|
||||
internal static class LogHelper
|
||||
{
|
||||
internal static event EventHandler<ErrorMessage> OnException;
|
||||
internal static event EventHandler<ErrorMessage> OnException;
|
||||
|
||||
internal static event EventHandler<ErrorMessage> OnLogLevelDisabled;
|
||||
|
||||
internal static string FormatMessageWithHeader(LoggerSettings settings, ELogType logType, string currentMessage,
|
||||
DateTime dateTime, string category = null)
|
||||
@@ -131,11 +133,27 @@ internal static class LogHelper
|
||||
{
|
||||
Log(logger, logLevel, message);
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsLogLevelEnabled(LoggerSettings loggerSettings, ELogType logType)
|
||||
{
|
||||
if (loggerSettings == null)
|
||||
{
|
||||
OnLogLevelDisabled?.Invoke(this, new ErrorMessage { Message = "Settings is null." });
|
||||
return false;
|
||||
}
|
||||
|
||||
var isEnabled = loggerSettings.MaxLogType != ELogType.NONE && logType <= loggerSettings.MaxLogType;
|
||||
if (!isEnabled)
|
||||
{
|
||||
OnLogLevelDisabled?.Invoke(this, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled, cannot log message" });
|
||||
}
|
||||
return isEnabled;
|
||||
}
|
||||
|
||||
private static bool IsLogLevelEnabled(LoggerSettings settings, ELogType logType)
|
||||
public static void SetLogLevel(LoggerSettings settings, ELogType logType)
|
||||
{
|
||||
return settings.MaxLogType != ELogType.NONE && logType <= settings.MaxLogType;
|
||||
settings.MaxLogType = logType;
|
||||
}
|
||||
|
||||
private static void Log(ILogger logger, LogLevel logLevel, string message)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -57,8 +56,14 @@ namespace EonaCat.Logger.Managers
|
||||
SetupFileLogger(settings);
|
||||
SetupLogManager();
|
||||
LogHelper.OnException += LogHelper_OnException;
|
||||
}
|
||||
|
||||
LogHelper.OnLogLevelDisabled += LogHelper_OnLogLevelDisabled;
|
||||
}
|
||||
|
||||
private void LogHelper_OnLogLevelDisabled(object sender, ErrorMessage e)
|
||||
{
|
||||
OnLogLevelDisabled?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
private DateTime CurrentDateTime => Settings.UseLocalTime ? DateTime.Now : DateTime.UtcNow;
|
||||
public ILoggerProvider LoggerProvider { get; private set; }
|
||||
public ILoggerFactory LoggerFactory { get; private set; }
|
||||
@@ -111,8 +116,16 @@ namespace EonaCat.Logger.Managers
|
||||
customSplunkSourceType, sendToGrayLogServers, grayLogFacility, grayLogSource, grayLogVersion);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets fired when an exception occurs during logging
|
||||
/// </summary>
|
||||
public event EventHandler<ErrorMessage> OnException;
|
||||
|
||||
/// <summary>
|
||||
/// Gets fired when the log level is disabled and the user tries to log a message
|
||||
/// </summary>
|
||||
public event EventHandler<ErrorMessage> OnLogLevelDisabled;
|
||||
|
||||
private static LoggerSettings CreateDefaultSettings()
|
||||
{
|
||||
var settings = new LoggerSettings
|
||||
@@ -194,7 +207,7 @@ namespace EonaCat.Logger.Managers
|
||||
string grayLogSource = null, string grayLogVersion = "1.1")
|
||||
{
|
||||
if (string.IsNullOrEmpty(message) || logType == ELogType.NONE ||
|
||||
(int)logType > (int)Settings.MaxLogType)
|
||||
!IsLogLevelEnabled(logType))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -254,8 +267,24 @@ namespace EonaCat.Logger.Managers
|
||||
};
|
||||
|
||||
Settings.OnLogEvent(logMessage);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private bool IsLogLevelEnabled(ELogType logType)
|
||||
{
|
||||
if (Settings == null)
|
||||
{
|
||||
OnLogLevelDisabled?.Invoke(this, new ErrorMessage { Message = "Settings is null." });
|
||||
return false;
|
||||
}
|
||||
|
||||
var isEnabled = Settings.MaxLogType != ELogType.NONE && logType <= Settings.MaxLogType;
|
||||
if (!isEnabled)
|
||||
{
|
||||
OnLogLevelDisabled?.Invoke(this, new ErrorMessage { Message = $"Logtype '{logType}' is not enabled, cannot log message" });
|
||||
}
|
||||
return isEnabled;
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
Settings.ResetLogEvent();
|
||||
|
||||
11
README.md
11
README.md
@@ -95,6 +95,7 @@ namespace EonaCat.Logger.Advanced
|
||||
// Create and configure a LogManager for logging.
|
||||
_logManager = new LogManager(new LoggerSettings { RemoveMessagePrefix = true });
|
||||
_logManager.OnException += _logManager_OnException;
|
||||
_logManager.OnLogLevelDisabled += _logManager_OnLogLevelDisabled;
|
||||
_logManager.Settings.FileLoggerOptions.FileNamePrefix = "advanced";
|
||||
_logManager.Settings.UseLocalTime = true;
|
||||
_logManager.Settings.FileLoggerOptions.UseLocalTime = true;
|
||||
@@ -106,6 +107,16 @@ namespace EonaCat.Logger.Advanced
|
||||
|
||||
// Event handler for LogManager exceptions, writes messages to the console.
|
||||
private static void _logManager_OnException(object? sender, ErrorMessage e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
if (e.Exception != null)
|
||||
{
|
||||
Console.WriteLine(e.Exception);
|
||||
}
|
||||
}
|
||||
|
||||
// Event handler for LogManager loglevel disabled notifications, writes messages to the console.
|
||||
private static void _logManager_OnLogLevelDisabled(object? sender, ErrorMessage e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
if (e.Exception != null)
|
||||
|
||||
Reference in New Issue
Block a user