zoukankan      html  css  js  c++  java
  • 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} 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

    如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

  • 相关阅读:
    第二百八十五天 how can I 坚持
    第二百八十四天 how can I 坚持
    第二百八十一、二、三天 how can I 坚持
    第二百八十天 how can I 坚持
    第二百七十九天 how can I 坚持
    第二百七十八天 how can I 坚持
    第二百七十七天 how can I 坚持
    第二百七十四、五、六天 how can I 坚持
    第二百七十二、三天 how can I 坚持
    第二百七十一天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/linezero/p/Diagnostics.html
Copyright © 2011-2022 走看看