[.NET Core]如何捕捉系統產生的Exception

上篇講述到各大Filter的流程以及Authorization Filter的使用,
這次則來簡單描述一下Exception Filter怎麼實作吧!

Part1. 還沒看過的可以先去看看[如何製作身分辨識及授權]

 

進入正題,Exception Filter該如何實作呢?
其實相較於Authorization Filter來說,其實Exception Filter簡單很多,
一樣新增一個Class並且繼承Attribute、IExceptionFilter,
並實作Interface的功能,
​public class ExceptionFilter : Attribute, IExceptionFilter    
{        
    public void OnException(ExceptionContext context)        
    {            
        // 捕捉系統Excepion             
        Directory.CreateDirectory
          (System.AppDomain.CurrentDomain.BaseDirectory + "logs");            
        File.AppendAllText
          ($"{System.AppDomain.CurrentDomain.BaseDirectory}logs/"
               + DateTime.Now.ToString("yyyy-MM-dd") + ".log"
        , "【Exception】" + DateTime.Now.ToString() + ":"
               + context.Exception.Message + "\r\n");
    }    
}

只要這樣子並將Attribute加在Controller就可以捕捉系統產生的Exception並且記錄在TXT檔內囉!
是不是很簡單呢?
「是不是很簡單 鮑伯魯斯」的圖片搜尋結果

 

那麼到這裡大家有沒有覺得每次新增Filter就要去Controller註冊有點麻煩R,
下次就會說明怎麼做才可以一勞永逸哦!

 

 

 

 

 

 

 

 

 

 

如上述有誤,煩請指教。