天天看點

【Abp VNext】實戰入門(三):【4】控制台應用程式 —— 全局異常錯誤事件捕捉一、前言二、操作步驟三、總結

文章目錄

  • 一、前言
  • 二、操作步驟
    • 1、建立.netcore 控制台應用程式:
    • 2、添加全局異常事件捕捉方法:
    • 3、日志儲存結果預覽:
  • 三、總結

一、前言

上一篇講解了Seriallog日志記錄

這一篇結合日志記錄,講解如何全局捕捉并儲存錯誤異常事件,友善Bug記錄分析;

二、操作步驟

1、建立.netcore 控制台應用程式:

Main方法代碼如下:

public static async Task<int> Main(string[] args)
{
     
    //1、日志輸出配置
    DebugPrint();

    //2、全局異常事件捕捉:一定要在DebugPrint();日志配置的後面
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

    //3、開啟控制台服務
    int tmpResult = await StartConsoleHost(args);
    return tmpResult;

}

           

2、添加全局異常事件捕捉方法:

全局為異常事件:隻捕捉未知的異常事件,try catch 中的事件捕捉不到

private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    Log.Error(e.ExceptionObject.ToString()); //日志儲存錯誤資訊
}

           

3、日志儲存結果預覽:

2021-05-09 20:24:12.298 +08:00 [ERR] System.Exception: 錯誤日志輸出************

at AoRuiDe.GasMonitoring.ConsoleService.MainService.StartServiceAsync() in E:\Projects\AoRuiDe.GasMonitoring\src\AoRuiDe.GasMonitoring.ConsoleService\MainService.cs:line 86

at System.Threading.Tasks.Task.<>c.b__140_1(Object state)

at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()

at System.Threading.ThreadPoolWorkQueue.Dispatch()

at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

【Abp VNext】實戰入門(三):【4】控制台應用程式 —— 全局異常錯誤事件捕捉一、前言二、操作步驟三、總結

三、總結

風蕭蕭兮易水寒 一堆Bug兮誤餘年

繼續閱讀