我使用异常过滤器来记录我的ASP.NET核心应用程序中的异常:
public void OnException(ExceptionContext context)
{
var request = context.HttpContext.Request;
var resource = $"{request?.Method}: {request?.Path}{request?.QueryString}";
var logger = context.HttpContext.RequestServices.GetService<ILogger<ExceptionFilter>>();
logger.LogError(0, context.Exception, $"Error in SB.API - {resource}");
}
这可以正常工作,但是Kestrel还记录了此事件给我重复的条目。
当我手动登录时,如何防止此错误进一步传播?
我不想完全关闭它,因为那样我可能会错过管道其他部分发生的错误。
设置context.ExceptionHandled = true;
,然后Kestrel知道您会照顾它并且不会记录它。