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>
|
<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.3.2</FileVersion>
|
<FileVersion>1.3.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.3.2+{chash:10}.{c:ymd}</EVRevisionFormat>
|
<EVRevisionFormat>1.3.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>
|
||||||
|
|||||||
@@ -63,10 +63,17 @@ public static class ExceptionExtensions
|
|||||||
|
|
||||||
foreach (DictionaryEntry entry in data)
|
foreach (DictionaryEntry entry in data)
|
||||||
{
|
{
|
||||||
sb.Append(" | ")
|
if (entry.Key != null)
|
||||||
.Append(entry.Key)
|
{
|
||||||
.Append(": ")
|
sb.Append(" | ")
|
||||||
|
.Append(entry.Key);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entry.Value != null)
|
||||||
|
{
|
||||||
|
sb.Append(": ")
|
||||||
.AppendLine(entry.Value.ToString());
|
.AppendLine(entry.Value.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ 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,
|
internal static string FormatMessageWithHeader(LoggerSettings settings, ELogType logType, string currentMessage,
|
||||||
DateTime dateTime, string category = null)
|
DateTime dateTime, string category = null)
|
||||||
{
|
{
|
||||||
@@ -133,9 +135,25 @@ internal static class LogHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsLogLevelEnabled(LoggerSettings settings, ELogType logType)
|
private bool IsLogLevelEnabled(LoggerSettings loggerSettings, ELogType logType)
|
||||||
{
|
{
|
||||||
return settings.MaxLogType != ELogType.NONE && logType <= settings.MaxLogType;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetLogLevel(LoggerSettings settings, ELogType logType)
|
||||||
|
{
|
||||||
|
settings.MaxLogType = logType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Log(ILogger logger, LogLevel logLevel, string message)
|
private static void Log(ILogger logger, LogLevel logLevel, string message)
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -57,6 +56,12 @@ namespace EonaCat.Logger.Managers
|
|||||||
SetupFileLogger(settings);
|
SetupFileLogger(settings);
|
||||||
SetupLogManager();
|
SetupLogManager();
|
||||||
LogHelper.OnException += LogHelper_OnException;
|
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;
|
private DateTime CurrentDateTime => Settings.UseLocalTime ? DateTime.Now : DateTime.UtcNow;
|
||||||
@@ -111,8 +116,16 @@ namespace EonaCat.Logger.Managers
|
|||||||
customSplunkSourceType, sendToGrayLogServers, grayLogFacility, grayLogSource, grayLogVersion);
|
customSplunkSourceType, sendToGrayLogServers, grayLogFacility, grayLogSource, grayLogVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets fired when an exception occurs during logging
|
||||||
|
/// </summary>
|
||||||
public event EventHandler<ErrorMessage> OnException;
|
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()
|
private static LoggerSettings CreateDefaultSettings()
|
||||||
{
|
{
|
||||||
var settings = new LoggerSettings
|
var settings = new LoggerSettings
|
||||||
@@ -194,7 +207,7 @@ namespace EonaCat.Logger.Managers
|
|||||||
string grayLogSource = null, string grayLogVersion = "1.1")
|
string grayLogSource = null, string grayLogVersion = "1.1")
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(message) || logType == ELogType.NONE ||
|
if (string.IsNullOrEmpty(message) || logType == ELogType.NONE ||
|
||||||
(int)logType > (int)Settings.MaxLogType)
|
!IsLogLevelEnabled(logType))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -256,6 +269,22 @@ namespace EonaCat.Logger.Managers
|
|||||||
Settings.OnLogEvent(logMessage);
|
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()
|
public void Reset()
|
||||||
{
|
{
|
||||||
Settings.ResetLogEvent();
|
Settings.ResetLogEvent();
|
||||||
|
|||||||
11
README.md
11
README.md
@@ -95,6 +95,7 @@ namespace EonaCat.Logger.Advanced
|
|||||||
// Create and configure a LogManager for logging.
|
// Create and configure a LogManager for logging.
|
||||||
_logManager = new LogManager(new LoggerSettings { RemoveMessagePrefix = true });
|
_logManager = new LogManager(new LoggerSettings { RemoveMessagePrefix = true });
|
||||||
_logManager.OnException += _logManager_OnException;
|
_logManager.OnException += _logManager_OnException;
|
||||||
|
_logManager.OnLogLevelDisabled += _logManager_OnLogLevelDisabled;
|
||||||
_logManager.Settings.FileLoggerOptions.FileNamePrefix = "advanced";
|
_logManager.Settings.FileLoggerOptions.FileNamePrefix = "advanced";
|
||||||
_logManager.Settings.UseLocalTime = true;
|
_logManager.Settings.UseLocalTime = true;
|
||||||
_logManager.Settings.FileLoggerOptions.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.
|
// Event handler for LogManager exceptions, writes messages to the console.
|
||||||
private static void _logManager_OnException(object? sender, ErrorMessage e)
|
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);
|
Console.WriteLine(e.Message);
|
||||||
if (e.Exception != null)
|
if (e.Exception != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user