我怎样才能得到" controlLevelSwitch"在Serilog Seq水槽工作

时间:2017-07-20 07:24:58

标签: seq serilog

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

切换

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

在API密钥的设置中,最低级别设置为" Debug"和seq只显示级别" Debug"和预期的一样高。

但是在应用程序端,所有内容仍然记录,最小日志级别没有变化。我可以看到"详细"在控制台上,seq接收器的滚动日志文件和我设置的单独滚动日志文件。这不会改变我是否发送" Debug"由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!!!");

1 个答案:

答案 0 :(得分:0)

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