/// <summary> /// Flushes the current context state to the configured sink. /// </summary> public void Flush() { _logger.LogDebug($"Configuring context for environment {_environment.Name}"); ConfigureContextForEnvironment(_context); if (_environment.Sink == null) { var message = $"No Sink is configured for environment `{_environment.GetType().Name}`"; throw new InvalidOperationException(message); } _logger.LogDebug("Sending data to sink. {}", _environment.Sink.GetType().Name); _environment.Sink.Accept(_context); _context = _context.CreateCopyWithContext(); }