Severity checking
This commit is contained in:
parent
63dd4ae25c
commit
0b5ba1a6e7
@ -5,14 +5,14 @@ namespace DTLib.Logging.DependencyInjection;
|
|||||||
|
|
||||||
public class MyLoggerWrapper<TCaller> : Microsoft.Extensions.Logging.ILogger<TCaller>
|
public class MyLoggerWrapper<TCaller> : Microsoft.Extensions.Logging.ILogger<TCaller>
|
||||||
{
|
{
|
||||||
private DTLib.Logging.New.ILogger _logger;
|
public DTLib.Logging.New.ILogger Logger;
|
||||||
public MyLoggerWrapper(DTLib.Logging.New.ILogger logger)=>
|
public MyLoggerWrapper(DTLib.Logging.New.ILogger logger)=>
|
||||||
_logger = logger;
|
Logger = logger;
|
||||||
|
|
||||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
|
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
|
||||||
{
|
{
|
||||||
string message = formatter(state, exception);
|
string message = formatter(state, exception);
|
||||||
_logger.Log(typeof(TCaller).Name, LogSeverity_FromLogLevel(logLevel), message);
|
Logger.Log(typeof(TCaller).Name, LogSeverity_FromLogLevel(logLevel), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _isEnabled=true;
|
private bool _isEnabled=true;
|
||||||
|
|||||||
@ -2,8 +2,21 @@ namespace DTLib.Logging.New;
|
|||||||
|
|
||||||
public enum LogSeverity
|
public enum LogSeverity
|
||||||
{
|
{
|
||||||
Debug=1,
|
Debug,
|
||||||
Info=2,
|
Info,
|
||||||
Warn=4,
|
Warn,
|
||||||
Error=8
|
Error
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class LogSeverityHelper
|
||||||
|
{
|
||||||
|
public static bool CheckSeverity(this ILogger logger, LogSeverity severity)
|
||||||
|
=> severity switch
|
||||||
|
{
|
||||||
|
LogSeverity.Debug => logger.DebugLogEnabled,
|
||||||
|
LogSeverity.Info => logger.InfoLogEnabled,
|
||||||
|
LogSeverity.Warn => logger.WarnLogEnabled,
|
||||||
|
LogSeverity.Error => logger.ErrorLogenabled,
|
||||||
|
_ => throw new ArgumentOutOfRangeException(nameof(severity), severity, "unknown severity")
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ -5,7 +5,12 @@ namespace DTLib.Logging.New;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class CompositeLogger : ILogger
|
public class CompositeLogger : ILogger
|
||||||
{
|
{
|
||||||
|
public bool DebugLogEnabled { get; set; } = true;
|
||||||
|
public bool InfoLogEnabled { get; set; } = true;
|
||||||
|
public bool WarnLogEnabled { get; set; } = true;
|
||||||
|
public bool ErrorLogenabled { get; set; } = true;
|
||||||
public ILogFormat Format { get; }
|
public ILogFormat Format { get; }
|
||||||
|
|
||||||
protected ILogger[] _loggers;
|
protected ILogger[] _loggers;
|
||||||
|
|
||||||
public CompositeLogger(ILogFormat format, params ILogger[] loggers)
|
public CompositeLogger(ILogFormat format, params ILogger[] loggers)
|
||||||
@ -20,6 +25,9 @@ public class CompositeLogger : ILogger
|
|||||||
|
|
||||||
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
||||||
{
|
{
|
||||||
|
if(!this.CheckSeverity(severity))
|
||||||
|
return;
|
||||||
|
|
||||||
for (int i = 0; i < _loggers.Length; i++)
|
for (int i = 0; i < _loggers.Length; i++)
|
||||||
_loggers[i].Log(context, severity, message, format);
|
_loggers[i].Log(context, severity, message, format);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,13 @@
|
|||||||
// вывод лога в консоль и файл
|
// вывод лога в консоль и файл
|
||||||
public class ConsoleLogger : ILogger
|
public class ConsoleLogger : ILogger
|
||||||
{
|
{
|
||||||
readonly object consolelocker = new();
|
public bool DebugLogEnabled { get; set; } = true;
|
||||||
|
public bool InfoLogEnabled { get; set; } = true;
|
||||||
|
public bool WarnLogEnabled { get; set; } = true;
|
||||||
|
public bool ErrorLogenabled { get; set; } = true;
|
||||||
public ILogFormat Format { get; }
|
public ILogFormat Format { get; }
|
||||||
|
|
||||||
|
readonly object consolelocker = new();
|
||||||
|
|
||||||
public ConsoleLogger(ILogFormat format)
|
public ConsoleLogger(ILogFormat format)
|
||||||
=> Format = format;
|
=> Format = format;
|
||||||
@ -15,6 +20,9 @@ public class ConsoleLogger : ILogger
|
|||||||
|
|
||||||
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
||||||
{
|
{
|
||||||
|
if(!this.CheckSeverity(severity))
|
||||||
|
return;
|
||||||
|
|
||||||
var msg = format.CreateMessage(context, severity, message);
|
var msg = format.CreateMessage(context, severity, message);
|
||||||
lock (consolelocker)
|
lock (consolelocker)
|
||||||
ColoredConsole.Write(ColorFromSeverity(severity),msg);
|
ColoredConsole.Write(ColorFromSeverity(severity),msg);
|
||||||
|
|||||||
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
public class FileLogger : ILogger
|
public class FileLogger : ILogger
|
||||||
{
|
{
|
||||||
|
public bool DebugLogEnabled { get; set; } = true;
|
||||||
|
public bool InfoLogEnabled { get; set; } = true;
|
||||||
|
public bool WarnLogEnabled { get; set; } = true;
|
||||||
|
public bool ErrorLogenabled { get; set; } = true;
|
||||||
public ILogFormat Format { get; }
|
public ILogFormat Format { get; }
|
||||||
|
|
||||||
public string LogfileName { get; protected set; }
|
public string LogfileName { get; protected set; }
|
||||||
@ -26,6 +30,9 @@ public class FileLogger : ILogger
|
|||||||
|
|
||||||
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
||||||
{
|
{
|
||||||
|
if(!this.CheckSeverity(severity))
|
||||||
|
return;
|
||||||
|
|
||||||
var msg = format.CreateMessage(context, severity, format).ToBytes(StringConverter.UTF8);
|
var msg = format.CreateMessage(context, severity, format).ToBytes(StringConverter.UTF8);
|
||||||
lock (LogfileStream)
|
lock (LogfileStream)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,12 @@ public interface ILogger : IDisposable
|
|||||||
{
|
{
|
||||||
|
|
||||||
ILogFormat Format { get; }
|
ILogFormat Format { get; }
|
||||||
|
bool DebugLogEnabled { get; set; }
|
||||||
|
bool InfoLogEnabled { get; set; }
|
||||||
|
bool WarnLogEnabled { get; set; }
|
||||||
|
bool ErrorLogenabled { get; set; }
|
||||||
|
|
||||||
void Log(string context, LogSeverity severity, object message);
|
void Log(string context, LogSeverity severity, object message);
|
||||||
void Log(string context, LogSeverity severity, object message, ILogFormat format);
|
void Log(string context, LogSeverity severity, object message, ILogFormat format);
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user