private static bool TranslateLogLevel(Microsoft.Extensions.Logging.LogLevel logLevel, out LogLevel vostokLogLevel) { switch (logLevel) { case Microsoft.Extensions.Logging.LogLevel.Trace: vostokLogLevel = LogLevel.Trace; return(true); case Microsoft.Extensions.Logging.LogLevel.Debug: vostokLogLevel = LogLevel.Debug; return(true); case Microsoft.Extensions.Logging.LogLevel.Information: vostokLogLevel = LogLevel.Info; return(true); case Microsoft.Extensions.Logging.LogLevel.Warning: vostokLogLevel = LogLevel.Warn; return(true); case Microsoft.Extensions.Logging.LogLevel.Error: vostokLogLevel = LogLevel.Error; return(true); case Microsoft.Extensions.Logging.LogLevel.Critical: vostokLogLevel = LogLevel.Fatal; return(true); default: vostokLogLevel = default(LogLevel); return(false); } }
public void Log <TState>(Microsoft.Extensions.Logging.LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { if (!TranslateLogLevel(logLevel, out var vostokLogLevel) || !log.IsEnabledFor(vostokLogLevel)) { return; } var messageTemplate = formatter != null ? formatter(state, exception) : ReferenceEquals(state, null) ? typeof(TState).FullName : Convert.ToString(state); var logEvent = new LogEvent(vostokLogLevel, exception, messageTemplate, Array.Empty <object>()); if (state is IEnumerable <KeyValuePair <string, object> > kvps) { foreach (var kvp in kvps) { if (kvp.Key == "{OriginalFormat}") { continue; } logEvent.AddPropertyIfAbsent(kvp.Key, kvp.Value); } } log.Log(logEvent); }
public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { return(TranslateLogLevel(logLevel, out var vostokLogLevel) && log.IsEnabledFor(vostokLogLevel)); }