Serilog 的 CouchDB 接收器似乎没有使用 LogContext

Serilog's CouchDB sink doesn't seem to be using LogContext

我不确定如何将 Serilog 的 LogContext 与 CouchDB 接收器一起使用。

一个简单的例子来展示我目前的用法:

using (LogContext.PushProperty("Track", "hi"))
{
    this.Log.Information("test");
}

以及我在 CouchDB Futon 中看到的内容:

我的理解是,LogContext 会在所有 Serilog 日志中添加一个值为“hi”的“Track”字段,直到它被处理掉。但是,我没有看到这种情况发生。

(不确定如何回答我自己的问题,我通过进一步研究找到了解决方案。)

为了像我一样使用 LogContext class,记录器需要初始化: .Enrich.FromLogContext()

我以为我做到了,但我……没有。

this.Log = new LoggerConfiguration()
    .WriteTo.ColoredConsole()
    .WriteTo.CouchDB("http://127.0.0.1:5984/logs")
    .Enrich.FromLogContext()
    .CreateLogger();

解释如下:https://github.com/serilog/serilog/wiki/Enrichment