1using Microsoft.Extensions.Logging;
8public static partial class EngineLogger
21 private sealed class ModeLogger<T> : ILogger<T>
23 private static readonly
string CategoryName =
24 typeof(T).FullName ?? typeof(T).Name;
26 private readonly ILogger _logger;
40 _logger = GetOrCreateLoggerFactory().CreateLogger(CategoryName);
61 public IDisposable BeginScope<TState>(TState state) where TState : notnull
65 return _logger.BeginScope(state);
80 public bool IsEnabled(LogLevel logLevel) => _logger.IsEnabled(logLevel);
105 public void Log<TState>(
109 Exception? exception,
110 Func<TState, Exception?, string> formatter)
112 if (!_logger.IsEnabled(logLevel))
117 _logger.Log(logLevel, eventId, state, exception, formatter);
122 Func<object?, Exception?, string> boxedFormatter = (s, e) =>
123 formatter((TState)s!, e);
125 var ev =
new LogEvent(CategoryName, logLevel, eventId, state, exception, boxedFormatter);
EngineLoggingMode
Specifies the logging mode for the engine.