public static void LogStatus(this IMonitorServices monitor) { var status = monitor.GetStatus(); switch (status.Health) { case ServiceMonitor.Status.Healthiness.Alive: Logging.Information(status); break; case ServiceMonitor.Status.Healthiness.Ill: Logging.Warning(status); break; case ServiceMonitor.Status.Healthiness.OnLastLegs: Logging.Error(status); break; case ServiceMonitor.Status.Healthiness.Dead: Logging.Fatal(status); break; default: throw new ArgumentOutOfRangeException(); } }
protected override void before_each() { base.before_each(); logger = Substitute.For <ILogger>(); Logging.Configure(logger); service_monitor = null; service_status = ServiceMonitor.Status.Empty; }
public ServiceStatusNotifier(IMonitorServices monitor, Period heartbeat) { Monitor = monitor; Heartbeat = heartbeat; Timer = new Timer(e => Monitor.LogStatus(), null, TimeSpan.Zero, Heartbeat.ToDuration().ToTimeSpan()); }
private void a_service_monitor() { service_monitor = Substitute.For <IMonitorServices>(); service_monitor.Availability().Returns(Availability.Up()); }