public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { if (Name == typeof(LogglyHttpClient).FullName) { return; } if (!_options.Filter(Name, eventId, logLevel)) { return; } if (formatter == null) { throw new ArgumentNullException(nameof(formatter)); } var message = formatter(state, exception); if (message == null) { return; } var logglyEvent = new LogglyMessage { ApplicationName = _options.ApplicationName, MachineName = Environment.MachineName, Category = Name, Data = state, Event = eventId, Message = message, Level = logLevel, Error = FormatException(exception) }; _options.PreProcessMessage?.Invoke(logglyEvent); _processor.EnqueueMessage(logglyEvent); }
public void EnqueueMessage(LogglyMessage message) { _messageSubject.OnNext(message); }