我在我的 Xamarin 客户端应用程序上使用 Refit。当我调用我的 Api 并出现 ModelState/Validation 错误时,我将 a 返回ValidationProblem(ModelState)
给我的客户端。Refit 然后抛出一个ValidationApiException
. 异常中有一个traceId。
traceId
我怎样才能在服务器端获取它以便我可以记录它?我希望能够在出现错误/问题时将客户端设备日志与服务器关联起来。
来源显示该属性是这样traceId
检索的:
Run Code Online (Sandbox Code Playgroud)var traceId = Activity.Current?.Id ?? httpContext?.TraceIdentifier;
如果你想在控制器中获取它,你可以像这样使用:
public IActionResult MyAction()
{
// using System.Diagnostics for Activity
var traceId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
// ...
}
Run Code Online (Sandbox Code Playgroud)
请注意,httpContext
更改为HttpContext
,这是 的属性ControllerBase
。如果您想在控制器外部访问它,您可能需要使用IHttpContextAccessor
。
归档时间: |
|
查看次数: |
3750 次 |
最近记录: |