我有一个.NET Core应用程序,它使用通用异常过滤器来处理对外部系统的日志记录。过滤器如下所示:
public override void OnException(ExceptionContext context)
{
if (context.Exception is OperationCanceledException)
{
return;
}
if (_ignoreUnauthorizedExceptions && context.Exception is UnauthorizedAccessException)
{
return;
}
var requestId = Guid.NewGuid().ToString();
context.HttpContext.Response.Headers.Add("Request-ID", requestId);
context.Result = new ObjectResult(null) { StatusCode = 500 };
Log.Error($"Request-ID: {requestId} Unhandled exception.", context.Exception);
}
我需要显式设置context.Result
,以便在客户端的响应中设置我的自定义标头。但是在执行此操作时,我不再在dotnet.exe控制台窗口中获取堆栈跟踪。
相反,我只是得到这样一行:
Request finished in 1219.6822ms 500
对于本地开发,在控制台中获取完整的堆栈跟踪会很不错。我怎样才能做到这一点?