Asp.net web api 如何使用Serilog向OWIN请求添加请求标识符?

Asp.net web api 如何使用Serilog向OWIN请求添加请求标识符?,asp.net-web-api,owin,serilog,owin-middleware,Asp.net Web Api,Owin,Serilog,Owin Middleware,我正在尝试使用以下方法获得相同的结果: app.Use(async (owinContext, next) => { using (Serilog.Context.LogContext.PushProperty("HttpRequestId", Guid.NewGuid())) { await next(); } }); 这个模板呢 {Timestamp:yyyy-MM-dd HH:mm:ss.ffffff zzz} [{Level:u3}] {H

我正在尝试使用以下方法获得相同的结果:

app.Use(async (owinContext, next) =>
{
    using (Serilog.Context.LogContext.PushProperty("HttpRequestId", Guid.NewGuid()))
    {
        await next();
    }
});
这个模板呢

{Timestamp:yyyy-MM-dd HH:mm:ss.ffffff zzz} [{Level:u3}] {HttpRequestId}: {SourceContext}: {Message} {Scope}{NewLine}{Exception}
但是
HtpRequestId
在日志中总是显示为空:

2017-09-18 23:26:13.056013 +01:00 [WRN] : <SourceContext>: <message>
2017-09-18 23:26:13.056013+01:00[WRN]:

我做错了什么

您是否在Serilog配置中添加了
Enrich.FromLogContext()
?在拾取环境上下文属性并将其添加到事件之前,需要此选项加入。

这正是我所缺少的。