/// <inheritdoc /> public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { // First we take care about output to console. if (consoleLogger.IsEnabled(logLevel)) { consoleLogger.Log(logLevel, eventId, state, exception, (s, e) => { return(prefix + formatter(s, e)); }); } // The rest of the method cares about logging via NLog to files. NLog.LogLevel nLogLevel = logLevel.ToNLogLevel(); if (!IsEnabled(nLogLevel)) { return; } if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } string message = prefix + formatter(state, exception); LogEventInfo eventInfo = LogEventInfo.Create(nLogLevel, logger.Name, message); eventInfo.Exception = exception; logger.Log(wrapperType, eventInfo); }
public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } NLog.LogLevel nLogLogLevel = logLevel.ToNLogLevel(); bool isLogging = IsNlogEnabled(nLogLogLevel, _nloLogger); if (!isLogging && (exception == null || !_exceptionalWrapper.Enabled)) { return; } bool isError = logLevel == LogLevel.Error || logLevel == LogLevel.Critical; Dictionary <string, string> customData = _logExtractor.GatherData(isError); Guid?guid = null; if (_exceptionalWrapper.Enabled && exception != null && (_filters == null || _filters.LogToOpserver(exception))) { guid = _httpContextWrapper.ExceptionalLog(exception, customData, _categoryName, _appName); } if (!isLogging) { return; } string message = formatter(state, exception); if (message == "[null]" && exception != null) { message = exception.Message; } // Log to NLog LogEventInfo eventInfo = CreateNlogEventInfo(eventId, exception, nLogLogLevel, message); // Get cutom data and inject AppendLuccaData(guid, eventInfo, _options, customData); _nloLogger.Log(eventInfo); }
public bool IsEnabled(LogLevel logLevel) { return(IsNlogEnabled(logLevel.ToNLogLevel(), _nloLogger)); }
/// <inheritdoc /> public bool IsEnabled(LogLevel logLevel) { return(IsEnabled(logLevel.ToNLogLevel())); }