public static ILoggingBuilder AddHealthCheckLogger <TMessageFormatter>(this ILoggingBuilder builder, HealthCheckLoggerProviderConfiguration configuration) where TMessageFormatter : class, IHealthMessageFormatter { var provider = new HealthCheckLoggerProvider(configuration); builder.AddProvider(provider); builder.Services.AddSingleton(provider); builder.Services.AddSingleton <IHealthMessageFormatter, TMessageFormatter>(); return(builder); }
public void LimitWithMaxNumber() { var healthCheckLoggerProvider = new HealthCheckLoggerProvider(new HealthCheckLoggerProviderConfiguration { MaxNumberOfLogEntries = 10 }); for (var i = 0; i < 20; i++) { healthCheckLoggerProvider.AddLogEntry(new LogEntry(DateTime.Now, "random", LogLevel.Critical, "random", "random", new EventId(), null)); } healthCheckLoggerProvider.GetLogEntries().Length.Should().Be(10); }
public async Task LimitWithTimeAsync() { var healthCheckLoggerProvider = new HealthCheckLoggerProvider(new HealthCheckLoggerProviderConfiguration { FlushTime = TimeSpan.FromMilliseconds(10) }); for (var i = 0; i < 20; i++) { healthCheckLoggerProvider.AddLogEntry(new LogEntry(DateTime.Now, "random", LogLevel.Critical, "random", "random", new EventId(), null)); } await Task.Delay(50); healthCheckLoggerProvider.GetLogEntries().Length.Should().Be(0); }