Composite logger fix for different child logger severity settings

This commit is contained in:
Timerix 2025-04-06 14:51:09 +05:00
parent 26c118195c
commit af658b1656
2 changed files with 18 additions and 26 deletions

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<!--package info--> <!--package info-->
<PackageId>DTLib</PackageId> <PackageId>DTLib</PackageId>
<Version>1.7.0</Version> <Version>1.7.1</Version>
<Authors>Timerix</Authors> <Authors>Timerix</Authors>
<Description>Library for all my C# projects</Description> <Description>Library for all my C# projects</Description>
<RepositoryType>GIT</RepositoryType> <RepositoryType>GIT</RepositoryType>

View File

@ -11,8 +11,8 @@ public class CompositeLogger : ILogger
set set
{ {
_debugLogEnabled = value; _debugLogEnabled = value;
for (int i = 0; i < _loggers.Length; i++) foreach (var childLogger in ChildLoggers)
_loggers[i].DebugLogEnabled = value; childLogger.DebugLogEnabled = value;
} }
} }
@ -22,8 +22,8 @@ public class CompositeLogger : ILogger
set set
{ {
_infoLogEnabled = true; _infoLogEnabled = true;
for (int i = 0; i < _loggers.Length; i++) foreach (var childLogger in ChildLoggers)
_loggers[i].InfoLogEnabled = value; childLogger.InfoLogEnabled = value;
} }
} }
@ -33,8 +33,8 @@ public class CompositeLogger : ILogger
set set
{ {
_warnLogEnabled = value; _warnLogEnabled = value;
for (int i = 0; i < _loggers.Length; i++) foreach (var childLogger in ChildLoggers)
_loggers[i].WarnLogEnabled = value; childLogger.WarnLogEnabled = value;
} }
} }
@ -44,46 +44,38 @@ public class CompositeLogger : ILogger
set set
{ {
_errorLogenabled = value; _errorLogenabled = value;
for (int i = 0; i < _loggers.Length; i++) foreach (var childLogger in ChildLoggers)
_loggers[i].ErrorLogEnabled = value; childLogger.ErrorLogEnabled = value;
} }
} }
public ILogFormat Format { get; set; } public ILogFormat Format { get; set; }
public readonly List<ILogger> ChildLoggers;
protected ILogger[] _loggers; private bool _debugLogEnabled;
private bool _debugLogEnabled =
#if DEBUG
true;
#else
false;
#endif
private bool _infoLogEnabled = true; private bool _infoLogEnabled = true;
private bool _warnLogEnabled = true; private bool _warnLogEnabled = true;
private bool _errorLogenabled = true; private bool _errorLogenabled = true;
public CompositeLogger(ILogFormat format, params ILogger[] loggers) public CompositeLogger(ILogFormat format, params ILogger[] childLoggers)
{ {
Format = format; Format = format;
_loggers = loggers; ChildLoggers = new List<ILogger>(childLoggers);
} }
public CompositeLogger(params ILogger[] loggers) : this(new DefaultLogFormat(), loggers) public CompositeLogger(params ILogger[] childLoggers) : this(new DefaultLogFormat(), childLoggers)
{} {}
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)) foreach (var childLogger in ChildLoggers)
return; childLogger.Log(context, severity, message, format);
for (int i = 0; i < _loggers.Length; i++)
_loggers[i].Log(context, severity, message, format);
} }
public void Dispose() public void Dispose()
{ {
for (int i = 0; i < _loggers.Length; i++) foreach (var childLogger in ChildLoggers)
_loggers[i].Dispose(); childLogger.Dispose();
} }
} }