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的处理流程是一个管道,而中间件是装配到管道中的用于处理请求和响应的组件.中间件按照装配的先后顺序执行,并决定是否进入下一个组件.中间件管道的处 ...
随机推荐
- NET Core-TagHelper实现分页标签
这里将要和大家分享的是学习总结使用TagHelper实现分页标签,之前分享过一篇使用HtmlHelper扩展了一个分页写法地址可以点击这里http://www.cnblogs.com/wangrudo ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking
我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力.但这究竟是怎么做到的呢?看完这篇文章就明白了. 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类.UIAct ...
- spring无法读取properties文件数据
只讲述异常点,关于怎么配置文件,这里不做说明. 1. controller中无法读取config.properties文件 controller中注入的@Value配置是从servlet-cont ...
- Java 教程整理:基础、项目全都有
Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...
- InnoDB:Lock & Transaction
InnoDB 是一个支持事务的Engine,要保证事务ACID,必然会用到Lock.就像在Java编程一下,要保证数据的线程安全性,必然会用到Lock.了解Lock,Transaction可以帮助sq ...
- php安装threads多线程扩展
php5.3或以上,且为线程安全版本.apache和php使用的编译器必须一致.通过phpinfo()查看Thread Safety为enabled则为线程安全版.通过phpinfo()查看Compi ...
- echo命令
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的 ...
- 分布式唯一ID生成服务
SNService是一款基于分布式的唯一ID生成服务,主要用于提供大数量业务数据建立唯一ID的需要;服务提供最低10K/s的唯一ID请求处理.如果你部署服务的CPU资源达到4核的情况下那该服务最低可以 ...
- 值得收藏!国外最佳互联网安全博客TOP 30
如果你是网络安全从业人员,其中重要的工作便是了解安全行业的最新资讯以及技术趋势,那么浏览各大安全博客网站或许是信息来源最好的方法之一.最近有国外网站对50多个互联网安全博客做了相关排名,小编整理其中排 ...