First commit

This commit is contained in:
P-A
2026-03-28 21:49:58 +01:00
parent b4eb275d62
commit b903b27890
196 changed files with 5623 additions and 2 deletions

47
Logger/CompositeLogger.cs Normal file
View File

@@ -0,0 +1,47 @@
namespace Logger;
/// <summary>
/// Logger that writes to multiple loggers simultaneously
/// </summary>
public class CompositeLogger : ILogger
{
private readonly List<ILogger> _loggers;
public CompositeLogger(params ILogger[] loggers)
{
_loggers = new List<ILogger>(loggers ?? Array.Empty<ILogger>());
}
public void AddLogger(ILogger logger)
{
if (logger != null)
_loggers.Add(logger);
}
public void RemoveLogger(ILogger logger)
{
_loggers.Remove(logger);
}
public void Trace(string message) => Log(LogLevel.Trace, message);
public void Debug(string message) => Log(LogLevel.Debug, message);
public void Info(string message) => Log(LogLevel.Info, message);
public void Warning(string message) => Log(LogLevel.Warning, message);
public void Error(string message) => Log(LogLevel.Error, message);
public void Fatal(string message) => Log(LogLevel.Fatal, message);
public void Log(LogLevel level, string message)
{
foreach (var logger in _loggers)
{
try
{
logger.Log(level, message);
}
catch (Exception ex)
{
Console.Error.WriteLine($"Error in logger: {ex.Message}");
}
}
}
}