文章目录
- 一、前言
- 二、操作步骤
-
- 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()
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cskXTq5UNVRVTuVjMi9GZtJmdshFZwhnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2UDO3EjNyAjM5ATNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
三、总结
风萧萧兮易水寒 一堆Bug兮误余年