diff --git a/Logger.cs b/Logger.cs index 04bf974..5c7f6e4 100644 --- a/Logger.cs +++ b/Logger.cs @@ -4,6 +4,8 @@ public class Logger : ILogger { internal Logger() { } + public LoggerProvider _provider { get; internal set; } + private bool loggerStarted = false; private LogLevel maxLogLevel = LogLevel.DEBUG; @@ -29,6 +31,7 @@ public class Logger : ILogger public static Logger StartLogger(string filePath = "", LogLevel level = LogLevel.DEBUG, DateTime cleanUpBefore = new DateTime(), bool ThrowOnFailedDeletion = false) { var handler = new Logger(); + handler._provider = new(handler); if (handler.loggerStarted) throw new Exception($"The logger is already started"); diff --git a/LoggerProvider.cs b/LoggerProvider.cs index ac8a673..082454e 100644 --- a/LoggerProvider.cs +++ b/LoggerProvider.cs @@ -9,16 +9,20 @@ using System.Threading.Tasks; namespace Xorog.Logger; public class LoggerProvider : ILoggerProvider { - private readonly ConcurrentDictionary _loggers = new(StringComparer.OrdinalIgnoreCase); + internal LoggerProvider(Logger logger) + { + _logger = logger; + } + + private Logger _logger { get; set; } public ILogger CreateLogger(string categoryName) { - return _loggers.GetOrAdd(categoryName, name => new Logger()); + return _logger; } public void Dispose() { - _loggers.Clear(); GC.SuppressFinalize(this); } }