引发异常时控制日志记录.netcore,UseExceptionHandler

时间:2019-04-03 13:19:24

标签: c# exception .net-core

我有以下代码,目的是不记录某些错误,例如UnauthorizedAccessException。

反正有停止记录的原因,因为它记录了所有内容(不是UnzuthorizeAccessException时有两次记录,但我知道那是因为我手动调用Logger.error)。

app.UseExceptionHandler(appError =>
{
    appError.Run(async context =>
    {
        var contextFeature = context.Features.Get<IExceptionHandlerFeature>();

        if (contextFeature != null)
        {

            string msg = "";
            if (contextFeature.Error is UnauthorizedAccessException)
            {
                context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                msg = "Unauthorised.";
                // DO NOT LOG!
            }
            else {
                context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                msg = "Server Error!";
                Logger.error(contextFeature.Error);
            }
            await context.Response.WriteAsync(msg);
        }
    });
});

0 个答案:

没有答案
相关问题