Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 记录异常的正确方法.Net核心MVC应用程序_C#_Asp.net Mvc_Exception_.net Core_Try Catch - Fatal编程技术网

C# 记录异常的正确方法.Net核心MVC应用程序

C# 记录异常的正确方法.Net核心MVC应用程序,c#,asp.net-mvc,exception,.net-core,try-catch,C#,Asp.net Mvc,Exception,.net Core,Try Catch,当我捕获异常时,我当前正在记录每一个级别的日志。 我不确定这是正确的,或者只是在日志记录中“制造噪音”。 如果我抛出异常,那么在控制器层(而不是服务和存储库层)进行日志记录,这会通过冒泡捕获所有异常吗 控制器层 catch (Exception ex) { new ErrorReporter("MVC", ex.ToString(), User.Identity); errorMsgList.Add(ex.Message); foreac

当我捕获异常时,我当前正在记录每一个级别的日志。 我不确定这是正确的,或者只是在日志记录中“制造噪音”。 如果我抛出异常,那么在控制器层(而不是服务和存储库层)进行日志记录,这会通过冒泡捕获所有异常吗

控制器层

catch (Exception ex)
    {
        new ErrorReporter("MVC", ex.ToString(), User.Identity);

        errorMsgList.Add(ex.Message);
        foreach (var item in ex.Data.Values)
        {
            errorMsgList.Add(item.ToString());
        }
    }
存储库和服务层

catch (Exception ex)
{
    new ErrorReporter("MVC", ex.ToString(), null);
    throw;
}
这是我在数据库中的日志示例


ErrorReporter类做什么?您可以使用过滤器或中间件,而不是在控制器中添加异常处理。您可以在这里找到一个示例谢谢,我喜欢这个,这也引起了我的注意,我没有将ErrorReporter设置为异步。所以ErrorReporter只是执行一个sql插入器ErrorReporter类做什么?您可以使用过滤器或中间件,而不是在控制器中添加异常处理。您可以在这里找到一个示例谢谢,我喜欢这个,这也引起了我的注意,我没有将ErrorReporter设置为异步。所以ErrorReporter只是执行一个sql插入