【问题标题】:Global exception handling and Logging in asp.net MVC Coreasp.net MVC Core 中的全局异常处理和日志记录
【发布时间】:2017-01-05 10:17:41
【问题描述】:

我是 asp.net core mvc 的新手。我需要编写全局异常处理和错误登录 palce..我不需要在每个控制器中都写下面的内容请帮助我在一个地方全局编写

这是我的代码

使用 Microsoft.AspNet.Diagnostics;

using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.Logging;

namespace NS.Controllers
{
    public class HomeController : Controller
    {
        static ILogger _logger;
        public HomeController(ILoggerFactory factory)
        {
            if (_logger == null)
                _logger = factory.Create("Unhandled Error");
        }

        public IActionResult Error()
        {
            var feature = HttpContext.Features.Get<IExceptionHandlerFeature>();
            var error = feature?.Error;
            _logger.LogError("Oops!", error);
            return View("~/Views/Shared/Error.cshtml", error);
        }
    }
}

【问题讨论】:

  • 你可以在Configure()方法中使用app.UseExceptionHandler("/error");
  • 谢谢..我不想在每个控制器中编写 public IActionResult Error(){} ..是否有任何方法可以全局编写 Error 函数?
  • 它在您的应用程序中全局运行。当您收到异常 UseExceptionHandler() 时,抓住它并重定向到指定的控制器和操作。所以实际上你可以使用单个 ErrorControllerError 动作。
  • 好的,非常感谢您的快速回复..
  • 请记住,目前还没有 MVC6。仅限 ASP.NET Core MVC 1.0 和 1.1

标签: c# asp.net-core asp.net-core-mvc


【解决方案1】:

Startup.cs 中使用 .UseExceptionHandler() 您可以设置错误操作的路径:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{

    app.UseExceptionHandler("/error");

}

在这里你可以找到更多:MSDN

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2018-09-11
    • 2019-03-01
    • 1970-01-01
    相关资源
    最近更新 更多