29 lines
801 B
C#
29 lines
801 B
C#
using Microsoft.Extensions.Logging;
|
|
using System;
|
|
using System.Collections.Concurrent;
|
|
|
|
namespace Adaptation._Tests.Shared.Log;
|
|
|
|
public class FeedbackProvider : ILoggerProvider
|
|
{
|
|
|
|
private readonly LogLevel _LogLevel;
|
|
private readonly IFeedback _Feedback;
|
|
private readonly ConcurrentDictionary<string, FeedbackLogger> _Loggers;
|
|
|
|
public FeedbackProvider(LogLevel logLevel, IFeedback feedback)
|
|
{
|
|
_LogLevel = logLevel;
|
|
_Feedback = feedback;
|
|
_Loggers = new ConcurrentDictionary<string, FeedbackLogger>();
|
|
}
|
|
|
|
public ILogger CreateLogger(string categoryName) => _Loggers.GetOrAdd(categoryName, name => new FeedbackLogger(_LogLevel, _Feedback, name));
|
|
|
|
public void Dispose()
|
|
{
|
|
_Loggers.Clear();
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
|
|
} |