我在日志中使用了“跟踪标识”。关于aspnet回购和这里的建议是从HttpContext.TraceIdentifier
获得一个跟踪。
但是,当框架为验证失败创建一个ProblemDetails
时,它使用Activity.Current?.Id
。
示例:
var traceId1 = Activity.Current?.Id; // OWZ4G27FO6UWH:00000003
var traceId2 = HttpContext.TraceIdentifier; // 00-2a8ee37903e657e3a95b41178dafc56e-91b02006afcf3133-00
我担心我的日志使用一种跟踪id,而框架使用另一种--当我发现自己需要分析日志时,我会遇到问题。
这些有何不同?我该用哪一种?框架通常使用哪种类型?
更新
我也在回购上问过,他们没有解释就关闭了它。如果您有时间,请打开另一个问题,并参考关闭的一个和这个问题。提供一个链接,以便我们可以找到和更新您的问题。
发布于 2022-01-24 09:11:51
HttpContext.TraceIdentifier性质:获取或设置一个唯一标识符,以在跟踪日志中表示此请求。
Activity.Current性质:获取或设置当前线程的当前操作(活动)。
变量traceId = Activity.Current?.Id?httpContext?.TraceIdentifier;
从源代码中,我们可以看到它将使用活动id作为首选,如果活动Id为null,它将使用httpContext?.TraceIdentifier
,也可以使用此方法设置跟踪Id。
https://stackoverflow.com/questions/70828928
复制相似问题