Severity checking
This commit is contained in:
@@ -5,7 +5,12 @@ namespace DTLib.Logging.New;
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
protected 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)
|
||||
{
|
||||
if(!this.CheckSeverity(severity))
|
||||
return;
|
||||
|
||||
for (int i = 0; i < _loggers.Length; i++)
|
||||
_loggers[i].Log(context, severity, message, format);
|
||||
}
|
||||
|
||||
@@ -3,8 +3,13 @@
|
||||
// вывод лога в консоль и файл
|
||||
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; }
|
||||
|
||||
readonly object consolelocker = new();
|
||||
|
||||
public ConsoleLogger(ILogFormat format)
|
||||
=> Format = format;
|
||||
@@ -15,6 +20,9 @@ public class ConsoleLogger : ILogger
|
||||
|
||||
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
||||
{
|
||||
if(!this.CheckSeverity(severity))
|
||||
return;
|
||||
|
||||
var msg = format.CreateMessage(context, severity, message);
|
||||
lock (consolelocker)
|
||||
ColoredConsole.Write(ColorFromSeverity(severity),msg);
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
|
||||
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 string LogfileName { get; protected set; }
|
||||
@@ -26,6 +30,9 @@ public class FileLogger : ILogger
|
||||
|
||||
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);
|
||||
lock (LogfileStream)
|
||||
{
|
||||
|
||||
@@ -4,6 +4,12 @@ public interface ILogger : IDisposable
|
||||
{
|
||||
|
||||
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, ILogFormat format);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user