我在日志中使用“跟踪 ID”。关于 aspnet repo 和此处的建议是从HttpContext.TraceIdentifier.
但是,当框架ProblemDetails为验证失败创建时,它会使用Activity.Current?.Id.
例子:
var traceId1 = Activity.Current?.Id; // OWZ4G27FO6UWH:00000003
var traceId2 = HttpContext.TraceIdentifier; // 00-2a8ee37903e657e3a95b41178dafc56e-91b02006afcf3133-00
Run Code Online (Sandbox Code Playgroud)
我担心我的日志使用一种类型的跟踪 ID,而框架使用另一种类型 - 当我发现自己需要分析日志时,我就会遇到问题。
这些有何不同?我应该使用哪个?该框架通常使用哪种类型?
我也询问了回购协议,他们没有任何解释就关闭了它。如果您有时间,请打开一个新问题,并向我们提供链接,以便我们对您的问题进行投票。
HttpContext.TraceIdentifier属性:获取或设置在跟踪日志中表示此请求的唯一标识符。
Activity.Current属性:获取或设置当前线程的当前操作(Activity)。
var traceId = Activity.Current?.Id ?? httpContext?.TraceIdentifier;
从源码中我们可以看到,它会使用Activity Id作为首选,如果Activity Id为null,则会使用httpContext?.TraceIdentifier,你也可以使用这个方法来设置trace id。
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |