From fdca37ec6283be5ab60dac4d63160511ea4fb296 Mon Sep 17 00:00:00 2001 From: Mira <56395159+TheXorog@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:44:01 +0200 Subject: [PATCH] Modify LoggerProvider to work with non static --- Logger.cs | 3 +++ LoggerProvider.cs | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) 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); } }