public async Task Logs_Are_Sent_To_Client_From_Server_Respecting_SetMinimumLevel() { var logs = new ConcurrentBag <LogMessageParams>(); var(client, server) = await Initialize( options => { }, options => { options.ConfigureLogging( z => z .AddLanguageProtocolLogging() .SetMinimumLevel(LogLevel.Warning) ); } ); await SettleNext(); using var _ = client.Register(r => r.OnLogMessage(x => { logs.Add(x); })); var logger = server.GetRequiredService <ILogger <ILanguageServer> >(); logger.LogCritical("holy cow!"); logger.LogError("Something bad happened..."); logger.LogInformation("Here's something cool..."); logger.LogWarning("Uh-oh..."); logger.LogTrace("Just gotta let you trace!"); logger.LogDebug("Just gotta let you debug!"); await logs.DelayUntilCount(3, CancellationToken); await SettleNext(); var items = logs.Take(3).ToList(); items.Should().HaveCount(3); items.Where(z => z.Type == MessageType.Error).Should().HaveCount(2); items.Where(z => z.Type == MessageType.Info).Should().HaveCount(0); items.Where(z => z.Type == MessageType.Warning).Should().HaveCount(1); items.Where(z => z.Type == MessageType.Log).Should().HaveCount(0); }