ASP.NET Core 中间件Diagnostics使用
2016-12-15 10:35
811 查看
ASP.NET Core 中间件(Middleware)Diagnostics使用。对于中间件的介绍可以查看之前的文章ASP.NET Core 开发-中间件(Middleware)。
Diagnostics中间件,主要功能是用于报告和处理ASP.NET Core中的异常和错误信息,以及诊断Entity Framework核心迁移错误。
其中还有其他几项功能,欢迎页,错误代码页、如404 页等。以及一个还算不错的日志查看功能,这个功能也是很多人需要的功能,直接在线查看日志。
下面来一一讲解功能。
新建ASP.NET Core Web Application 项目-》Web应用程序 选择不进行身份验证。
创建好的项目,会自动引用Diagnostics 中间件。
NuGet引用:
Install-Package Microsoft.AspNetCore.Diagnostics
这就是异常信息的报告以及处理。
在开发环境下会显示详细的错误信息 app.UseDeveloperExceptionPage();,在非开发环境,跳转至 app.UseExceptionHandler("/Home/Error"); /Home/Error页。
如果你想一直展示错误信息就将app.UseDeveloperExceptionPage(); 放置在if 外面。或者在发布之后,将对应的系统环境调成Development 以显示错误信息。
项目中使用了EF Core 。可以添加 app.UseDatabaseErrorPage(); 以显示EF Core 相关信息。
启动程序就会显示如下页面。有扩展方法,可以指定对应的页面。
同样在Startup.cs中的Configure 方法加入:app.UseStatusCodePages();
访问不存在的页面会显示如下。
下面是简单的自定义错误信息
app.UseStatusCodePages("text/plain", "Error, status code: {0} \r LineZero");
还可以使用
app.UseStatusCodePagesWithRedirects("~/errors/{0}"); // 相对根路径
app.UseStatusCodePagesWithRedirects("/base/errors/{0}"); // 绝对路径
也可以使用
app.UseStatusCodePagesWithReExecute("/error/http{0}");
上面两者的区别一个是跳转,一个是执行。
需要额外添加一个 Microsoft.AspNetCore.Diagnostics.Elm 包。
安装好包打开Startup.cs ,首先在 ConfigureServices 方法加入服务。
筛选日志级别为Debug
然后再Configure 方法加入
app.UseElmPage(); 为指定日志显示页,app.UseElmCapture(); 记录日志。
运行程序访问 http://localhost:5000/Elm ,就可以查看一些信息记录。
这个组件还是有一些问题,我们可以做一些改造,更符合实际情况。
官方GitHub:https://github.com/aspnet/Diagnostics
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
Diagnostics中间件,主要功能是用于报告和处理ASP.NET Core中的异常和错误信息,以及诊断Entity Framework核心迁移错误。
其中还有其他几项功能,欢迎页,错误代码页、如404 页等。以及一个还算不错的日志查看功能,这个功能也是很多人需要的功能,直接在线查看日志。
下面来一一讲解功能。
新建ASP.NET Core Web Application 项目-》Web应用程序 选择不进行身份验证。
创建好的项目,会自动引用Diagnostics 中间件。
NuGet引用:
Install-Package Microsoft.AspNetCore.Diagnostics
报告异常和错误信息
默认创建好的项目会自动在Startup中Configure 方法加上这一段if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); }
这就是异常信息的报告以及处理。
在开发环境下会显示详细的错误信息 app.UseDeveloperExceptionPage();,在非开发环境,跳转至 app.UseExceptionHandler("/Home/Error"); /Home/Error页。
如果你想一直展示错误信息就将app.UseDeveloperExceptionPage(); 放置在if 外面。或者在发布之后,将对应的系统环境调成Development 以显示错误信息。
项目中使用了EF Core 。可以添加 app.UseDatabaseErrorPage(); 以显示EF Core 相关信息。
欢迎页
在Startup.cs中的Configure 方法加入:app.UseWelcomePage();启动程序就会显示如下页面。有扩展方法,可以指定对应的页面。
HTTP错误代码页
默认程序中404 或者500 等相关错误,并不会展示页面,只会返回对应的代码。同样在Startup.cs中的Configure 方法加入:app.UseStatusCodePages();
访问不存在的页面会显示如下。
下面是简单的自定义错误信息
app.UseStatusCodePages("text/plain", "Error, status code: {0} \r LineZero");
还可以使用
app.UseStatusCodePagesWithRedirects("~/errors/{0}"); // 相对根路径
app.UseStatusCodePagesWithRedirects("/base/errors/{0}"); // 绝对路径
也可以使用
app.UseStatusCodePagesWithReExecute("/error/http{0}");
上面两者的区别一个是跳转,一个是执行。
日志查看Elm
日志查看,也是Diagnostics 中间件的一个功能。用起来也比较方便。需要额外添加一个 Microsoft.AspNetCore.Diagnostics.Elm 包。
安装好包打开Startup.cs ,首先在 ConfigureServices 方法加入服务。
services.AddElm(elmOptions => { elmOptions.Filter = (loggerName, loglevel) => loglevel == LogLevel.Debug; });
筛选日志级别为Debug
然后再Configure 方法加入
app.UseElmPage(); app.UseElmCapture();
app.UseElmPage(); 为指定日志显示页,app.UseElmCapture(); 记录日志。
运行程序访问 http://localhost:5000/Elm ,就可以查看一些信息记录。
这个组件还是有一些问题,我们可以做一些改造,更符合实际情况。
官方GitHub:https://github.com/aspnet/Diagnostics
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
相关文章推荐
- ASP.NET Core 中间件Diagnostics使用
- ASP.NET Core -中间件(Middleware)使用
- 学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter
- ASP.NET Core 开发-中间件(StaticFiles)使用
- ASP.NET Core中使用GraphQL - 第二章 中间件
- asp.net core 使用 StaticFiles 中间件 (不完整翻译)
- ASP.NET Core 使用 URL Rewrite 中间件实现 HTTP 重定向到 HTTPS
- 在ASP.NET Core Identity外面使用Cookie中间件
- ASP.NET Core使用GraphQL第二章之中间件
- 详解在ASP.NET Core 中使用Cookie中间件
- Asp.net Core中如何使用中间件来管理websocket
- 在ASP.NET Core 中使用Cookie中间件
- 使用VS Code开发调试ASP.NET Core 1.0
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
- asp.net core 使用 Redis 和 Protobuf
- asp.net core 中间件详解及项目实战
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- ASP.NET Core 中文文档 第二章 指南(4.5)使用 SQL Server LocalDB
- asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存