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

原文地址:http://www.cnblogs.com/linezero/p/Diagnostics.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

ASP.NET Core 中间件Diagnostics使用相关推荐

  1. ASP.NET Core 中间件Diagnostics使用 异常和错误信息

    ASP.NET Core 中间件Diagnostics使用 异常和错误信息 参考文章: (1)ASP.NET Core 中间件Diagnostics使用 异常和错误信息 (2)https://www. ...

  2. ASP.NET Core 中间件(Middleware)详解

    ASP.NET Core 中间件(Middleware)详解 原文:ASP.NET Core 中间件(Middleware)详解 本文为官方文档译文,官方文档现已非机器翻译 https://docs. ...

  3. ASP.NET Core中间件初始化探究

    前言 在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景,ASP.NET Core默认也为我们内置了许多的中间件,甚至有时候我们需要自定义中间件来帮我们处理一些请求管道 ...

  4. ASP.NET Core 中间件分类

    ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map(). Run(),使用Run调用中间件的时候,会直接返回一个响应,所以后续 ...

  5. ASP.NET Core 中间件

    1.前言 中间件(middleware)是一种装配到应用管道以处理请求和响应的组件.每个组件: ●可选择是否将请求传递到管道中的下一个组件. ●可在管道中的下一个组件前后执行工作. 请求委托(requ ...

  6. 如何一秒钟从头构建一个 ASP.NET Core 中间件

    前言 其实地上本没有路,走的人多了,也便成了路. -- 鲁迅 就像上面鲁迅说的那样,其实在我们开发中间件的过程中,微软并没有制定一些策略或者文档来约束你如何编写一个中间件程序, 但是其中却存在者一些最 ...

  7. ASP.NET Core中间件(Middleware)实现WCF SOAP服务端解析

    ASP.NET Core中间件(Middleware)进阶学习实现SOAP 解析. 本篇将介绍实现ASP.NET Core SOAP服务端解析,而不是ASP.NET Core整个WCF host. 因 ...

  8. 【netcore】 ASP.NET Core 中间件

    基本概念 中间件是一种装配到应用管道以处理请求和响应的软件. 每个组件: 选择是否将请求传递到管道中的下一个组件. 可在管道中的下一个组件前后执行工作. 请求委托用于生成请求管道. 请求委托处理每个 ...

  9. ASP.NET Core中间件实现分布式 Session(转载)

    ASP.NET Core中间件实现分布式 Session 1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件 ...

最新文章

  1. codis3.2升级redis3.11到redis6.0.10调研
  2. 《剑指offer》c++版本 16.数值的整数次方
  3. 求素数——多线程练习
  4. android studio 显示方法列表,有没有办法在Android Studio编辑器中显示RecyclerView内容的预览?...
  5. 2440启动代码分析
  6. 数据结构:(6)其他情况的算法分析
  7. Python2 获取docx/doc文件内容
  8. java需要class_java需要class是什么意思
  9. 【AIS学习】12:AIS标准下载
  10. 前端实现在浏览器网页中录音
  11. Java—计算球体积
  12. 用以太坊区块链和jwt token保证Asp.Net Core的API交互安全(上)
  13. 开发者选项在哪?4.2及以上系统呼出教程
  14. 数控车床铣床仿真加工操机视频教程
  15. CSDN上传资源提示:资源上传中断
  16. 20P41 Premiere预设450+Luts现代时尚经典黑白VHS复古电影迷幻冷酷热色彩调色预设集合
  17. 阿里巴巴fastjson下载
  18. 分形之koch曲线生成
  19. PCB电磁兼容设计1
  20. 年轻人,我这里有一本防封号秘籍

热门文章

  1. eclipse创建maven多模块项目(单个类似)
  2. Oracle hang 之sqlplus -prelim使用方法
  3. centos 7 安装openstack kilo in three node
  4. 把nc v6的源码看懂
  5. Nginx server之Nginx作为反向代理服务器
  6. Yahoo Mail,慢功出细活〔转载〕
  7. 中小企业CRM评测-用户交互_易客
  8. C#来创建和读取XML文档 [转]
  9. Avalonia跨平台入门第九篇之控件置顶和置底
  10. 通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式...