1

我的应用程序设置了 Serilog 日志记录和 Seq 接收器(除了 ColoredConsole 和 RollingFile 接收器)。一切都很好,但从 Seq 切换的最低日志级别。

我的日志记录级别开关设置为“详细”的起始最低级别,以确保将任何内容发送到 seq。

在 API 密钥的设置中,最低级别设置为“调试”,并且 seq 仅显示具有“调试”级别和预期更高级别的事件。

但在应用程序端,所有内容仍被记录,最小日志级别没有变化。我可以在控制台上看到“详细”,seq sink 的滚动日志文件和我设置的单独的滚动日志文件。无论我发送由 seq 拾取的“调试”级别事件还是等待几分钟,这都不会改变。

这是我的配置:

var levelSwitch = new LoggingLevelSwitch(LogEventLevel.Verbose);
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.ControlledBy(levelSwitch)
    .Enrich.WithExceptionDetails()
    .WriteTo.ColoredConsole()
    .WriteTo.RollingFile(@".\log\log-{Date}.txt")
    .WriteTo.Seq("http://localhost:5341", bufferBaseFilename: @".\temp\seqlog", apiKey: "...", controlLevelSwitch: levelSwitch)
    .CreateLogger();

Log.Logger.Verbose("TEST!!!");
4

1 回答 1

0

在某些事件已经到达 Seq 之前,Seq 接收器不会设置该开关 - 电平控制不是即时的。在实践中,这可能意味着必须经过几秒钟才能看到其他接收器的输出发生变化。

于 2017-07-20T23:12:31.770 回答