天天看点

【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兮误余年

继续阅读