using Microsoft.Extensions.Logging; namespace DTLib.Logging.New.Microsoft; internal class MyLoggerWrapper : ILogger { private ILogger _logger; public MyLoggerWrapper(ILogger logger)=> _logger = logger; public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) { string message = formatter(state, exception); _logger.Log(nameof(TCaller), LogSeverity_FromLogLevel(logLevel), message); } private bool _isEnabled=true; public bool IsEnabled(LogLevel logLevel) => _isEnabled; public IDisposable BeginScope(TState state) { throw new NotImplementedException(); } static LogSeverity LogSeverity_FromLogLevel(LogLevel l) => l switch { LogLevel.Trace => LogSeverity.Debug, LogLevel.Debug => LogSeverity.Debug, LogLevel.Information => LogSeverity.Info, LogLevel.Warning => LogSeverity.Warn, LogLevel.Error => LogSeverity.Error, LogLevel.Critical => LogSeverity.Error, LogLevel.None => throw new NotImplementedException("LogLevel.None is not supported"), _ => throw new ArgumentOutOfRangeException(nameof(l), l, null) } ; }