gpt4 book ai didi

c# - 如何使用 Serilog 在异步方法上保持一致的标识符

转载 作者:行者123 更新时间:2023-11-30 21:28:57 30 4
gpt4 key购买 nike

考虑以下代码:

public async Task DoStuff() {
ILogger logger = LoggerFactory.CreateLogger<PuppetFactory>();
logger.LogDebug("1");
await Something()
logger.LogDebug("2");
await SomethingElse()
logger.LogDebug("3");
}

在 Serilog 的 outputTemplate 中,我有 {ThreadId}。当然,由于 async/await 将代码执行从一个线程抛到另一个线程,所以我的日志显示了不同的线程 ID。

我可以在我的输出模板中使用什么来使此特定执行运行具有相同的标识符?

最佳答案

您需要自己发明和应用标识符,例如OperationId:

// .Enrich.FromLogContext(), then
using (LogContext.PushProperty("OperationId", 123))
{
// Your async code here
}

关于c# - 如何使用 Serilog 在异步方法上保持一致的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854063/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com