Modify LoggerProvider to work with non static
This commit is contained in:
parent
9e9d10a282
commit
fdca37ec62
2 changed files with 10 additions and 3 deletions
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue