我在我的 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 次 |
| 最近记录: |