2017-02-28 35 views
1

处理我用一个异常过滤器登录我的ASP.NET核心应用的例外是这样的:防止红隼从错误记录了在ExceptionFilter

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}");   
} 

这工作得很好,而且红隼也记录这个事件给我一个重复的条目。

当我像这样手动记录它时,如何防止此错误进一步传播?

我不想完全关闭它,因为那样我可能会错过管道其他部分发生的错误。

+0

尝试检查“日志过滤”(https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging) –

回答

1

设置context.ExceptionHandled = true;然后Kestrel会知道你照顾它并且不会记录它。