public CircuitBreak(int exceptionsAllowedBeforeBreaking, TimeSpan durationOfBreak, int reTries, Func <Exception, bool> exceptionPredicate) { logger = ObjectContainer.Resolve <Logging.ILogger>(); circuitBreakerPolicy = Policy .Handle(exceptionPredicate) .CircuitBreaker( exceptionsAllowedBeforeBreaking: exceptionsAllowedBeforeBreaking, durationOfBreak: durationOfBreak, onBreak: (ex, breakDelay) => { logger.LogError(".Breaker logging: Breaking the circuit for " + breakDelay.TotalMilliseconds + "ms!", ex); }, onReset: () => { logger.LogDebug(".Breaker logging: Call ok! Closed the circuit again."); }, onHalfOpen: () => { logger.LogDebug(".Breaker logging: Half-open; next call is a trial."); }); retryPolicy = Policy .Handle(exceptionPredicate) .Retry(reTries); }
private void LogRead(string line) { if (String.IsNullOrEmpty(line)) { return; } _logger.LogDebug($"{_remote.Address} C: " + line); }
private void LogRead(string line) { _logger.LogDebug("C: " + line); }