Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 465|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-7-16 15:00:10 | 显示全部楼层 |阅读模式

    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

     

     
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-12 06:25 , Processed in 0.063575 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表