public void Log <TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { string message = null; object eventObj = eventId != default ? new { Id = eventId.Id, Name = eventId.Name } : null; object obj; if (formatter != null) //object is absent { message = formatter(state, exception); obj = eventObj == null ? null : new { @event = eventObj }; } else //print object only, without message { if (eventObj is null) { obj = new { @object = state } } ; else { obj = new { @object = state, @event = eventObj } }; } switch (logLevel) { case Microsoft.Extensions.Logging.LogLevel.Critical: Log(LogLevel.FATAL, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.Debug: Log(LogLevel.DEBUG, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.Trace: Log(LogLevel.TRACE, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.Error: Log(LogLevel.ERROR, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.Information: Log(LogLevel.INFO, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.Warning: Log(LogLevel.WARNING, message, obj, exception); break; case Microsoft.Extensions.Logging.LogLevel.None: break; default: Log(LogLevel.INFO, message, state, exception); Log(LogLevel.WARNING, $"(Encountered unknown logLevel = {logLevel}, writing out as Info)"); break; } }
public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { return(true); }