ASP.NET Core 中间件Diagnostics使用
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
报告异常和错误信息
默认创建好的项目会自动在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 中间件Diagnostics使用 异常和错误信息
ASP.NET Core 中间件(Middleware)Diagnostics使用.对于中间件的介绍可以查看之前的文章ASP.NET Core 开发-中间件(Middleware). Diagnost ...
- ASP.NET Core 中间件 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 中间件 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 中间件 上一章节中,我们我们有讲到 Startup 类中的 Confi ...
- ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析
ASP.NET Core中间件(Middleware)进阶学习实现SOAP 解析. 本篇将介绍实现ASP.NET Core SOAP服务端解析,而不是ASP.NET Core整个WCF host. 因 ...
- [转]ASP.NET Core 中间件详解及项目实战
本文转自:http://www.cnblogs.com/savorboard/p/5586229.html 前言 在上篇文章主要介绍了DotNetCore项目状况,本篇文章是我们在开发自己的项目中实际 ...
- 如何一秒钟从头构建一个 ASP.NET Core 中间件
前言 其实地上本没有路,走的人多了,也便成了路. -- 鲁迅 就像上面鲁迅说的那样,其实在我们开发中间件的过程中,微软并没有制定一些策略或者文档来约束你如何编写一个中间件程序, 但是其中却存在者一些最 ...
- ASP.NET Core中间件实现分布式 Session
1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件的配置 1.2. 依赖注入中间件 1.3. Cookies ...
- ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门
一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...
- ASP.NETCore学习记录(二) —— ASP.NET Core 中间件
ASP.NET Core 中间件 目录: 什么是中间件 ? IApplicationBuilder 使用 IApplicationBuilder 创建中间件 Run.Map 与 Use 方法 实战中间 ...
- ASP.NET Core 中间件基本用法
ASP.NET Core 中间件 ASP.NET Core的处理流程是一个管道,而中间件是装配到管道中的用于处理请求和响应的组件.中间件按照装配的先后顺序执行,并决定是否进入下一个组件.中间件管道的处 ...
随机推荐
- jQuery学习之路(2)-DOM操作
▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...
- angular2系列教程(九)Jsonp、URLSearchParams、中断选择数据流
大家好,今天我们要讲的是http模块的第二部分,主要学习ng2中Jsonp.URLSearchParams.observable中断选择数据流的用法. 例子
- mongodb
修改所有的记录: > db.t_express_apply.update({},{$set:{"isStatus" : 0}},{multi:true})WriteResul ...
- Spring获取ApplicationContext
在Spring+Struts+Hibernate中,有时需要使用到Spring上下文.项目启动时,会自动根据applicationContext配置文件初始化上下文,可以使用ApplicationCo ...
- java设计模式之单例模式(几种写法及比较)
概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建 ...
- QT内省机制、自定义Model、数据库
本文将介绍自定义Model过程中数据库数据源的获取方法,我使用过以下三种方式获取数据库数据源: 创建 存储对应数据库所有字段的 结构体,将结构体置于容器中返回,然后根据索引值(QModelIndex) ...
- 【一起学OpenFOAM】系列由来
1 为什么要学习OpenFOAM 掐指算起来,接触CFD也差不多有十个年头了,其间一直使用的商用CFD软件,有Fluent.CFX.StarCCM+等,这些商用软件各有其优缺点,都能较好的解决常规的工 ...
- CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...
- Topshelf 学习 跨平台
Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshelf-project.com Git ...
- [DeviceOne开发]-do_LinearLayout组件使用技巧
一.摘要 今天跟大家主要来介绍一下DeviceOne中的do_linearlayout这个布局,在DeviceOne开发中,do_linearlayout这个布局是相当重要. 现在给大家来总结一下. ...