(七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

虚幻大学 xuhss 507℃ 0评论

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

一、日志

日志具有帮助开发者快速的定位问题,记录各种信息,配合其他分析框架使用等等功能,收集日志的各类框架如:Log4net、NLog、Exceptionless、Serilog等等,百度或园子里介绍及对比文章不胜枚举,此不赘述。易用为主,选择NLog先集成,方便后面演示使用。

1、安装 NLog.Web.AspNetCore

813d9ee6569a333a9fe5db147954442c - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

2、新建 nlog.config,只改了输出路径。(配置和变量介绍参考最后链接,就不贴代码了)

14b78b0ccd4f59f36d00ad7056a49fc4 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

3、注入到框架中,测试输出效果

313ca0605dd62a8911303b33303ad4d5 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理6b7e7c52de05b1e849a88127377b5442 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理69d969a2340250170f57beab69f50d80 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

二、异常处理

异常处理分为两种,一种是过滤器,一种是中间件。过滤器只能捕获Action以内的异常,而中间件可以捕获全局的异常,也可以只用中间件捕获全局异常,但通常是有所区分的。

1、过滤器

(1)新建一个异常过滤器 ExceptionFilter,注入到框架中

9a897196aa9f63d6c42b62c66cbd38f5 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

(2)ExceptionFilter 继承 IAsyncExceptionFilter 接口,代码如下:

public class ExceptionFilter : IAsyncExceptionFilter
{
    private readonly ILogger \_logger;
 public ExceptionFilter(ILogger logger)
 {
 \_logger = logger;
 }
 public Task OnExceptionAsync(ExceptionContext context)
 {
 if (context.ExceptionHandled == false)
 {
 string msg = context.Exception.Message;
 context.Result = new ContentResult
 {
 Content = msg,
 StatusCode = 200,
 ContentType = "application/json"
 };
 \_logger.LogError("ExceptionFilter:" + msg);
 }
 context.ExceptionHandled = true; //设置异常已处理了,否则会被异常中间件再次捕获。
 return Task.CompletedTask;
 }
}

(3)在插入接口直接抛出异常,swagger调用接口测试,输出日志

550ed7c0e0cfd1e60cb528cb2b892ae2 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

2、中间件

(1)一定要按顺序注册且异常捕获最先

fb55b35f0611f56ab6cbe2f6d467e2c4 - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

(2)启动项目,捕获异常

fef5484d2fe9d96a0b7c22febef75cfc - (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

三、前人栽树,后人乘凉

Nlog日志:
https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-5
https://blog.csdn.net/tinys-top/p/12002673.html
异常处理
https://blog.csdn.net/lucky_hu/p/12444832.html
https://blog.csdn.net/dotnet261010/p/13193124.html

转载请注明:xuhss » (七)React Ant Design Pro + .Net5 WebApi:后端环境搭建-日志、异常处理

喜欢 (0)

您必须 登录 才能发表评论!