在 Task.Run 中使用 NLog asp net-item:variable?

Using NLog's aspnet-item:variable inside Task.Run?

我的 Nlog.config 包含此模板:

 <target xsi:type="Console" name="Console"
            layout="${aspnet-item:variable:requestId} ${newline} ..." />

我正在使用 .net 核心(docker)。

在可等待的代码中,我确实看到了 item:variable:requestId 的值,因为我使用了 :

 _httpContextAccessor.HttpContext.Items["requestId"] = "dummyvalue";

所以 nlog 可以从上下文中读取它。

但是,如果我的 loggerServiceTask.Run 中运行,那么我看不到值。 (因为 Task.run 没有 HttpContext

问题:

有代码 API 可以手动设置 aspnet-item:variable:requestId 值吗? 或者还有其他选择吗?

在代码中:

MappedDiagnosticsLogicalContext.Set("MyValueName", myValue);

在Nlog.config中:

<target layout="${mdlc:item=MyValueName}" includeMdlc="true">