Modify LoggerProvider to work with non static

This commit is contained in:
Mira 2022-06-13 11:44:01 +02:00
parent 9e9d10a282
commit fdca37ec62
Signed by untrusted user who does not match committer: Xorog
GPG key ID: 983798ED9C3E7C36
2 changed files with 10 additions and 3 deletions

View file

@ -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");

View file

@ -9,16 +9,20 @@ using System.Threading.Tasks;
namespace Xorog.Logger;
public class LoggerProvider : ILoggerProvider
{
private readonly ConcurrentDictionary<string, Logger> _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);
}
}