NLog用于MVC应用程序

时间:2014-11-24 02:02:27

标签: asp.net-mvc nlog

如何使用NLog获取有关本地错误的详细信息?

到现在为止我有这个:

private static Logger logger = LogManager.GetCurrentClassLogger();

public ActionResult Index()
{
    try
    {
        var domain = db.Works.ToList();

        var model = Mapper.Map<IList<Work>, IList<WorkIndexViewModels>>(domain);

        return View(model);
    }
    catch (Exception e)
    {
        logger.Error("Error in Index: " + e);
    }
}

如果我在捕获后放回,模型超出范围。

如果我把回程放在try中,我会从Action获得“并非所有代码路径都返回一个值”。

那我怎么解决这个问题呢?

1 个答案:

答案 0 :(得分:2)

由于您已经捕获了错误并且无法显示请求的页面,因此您可以将捕获内容重定向到错误页面:

    catch (Exception e)
    {
        logger.Error("Error in Index: " + e);
        return RedirectToAction("Index", "Error"); // Redirect to error controller or page
    }

或者,可能更合适,您可以让您的操作引发500错误,以便您的web.config中的错误配置可以正确处理重定向。

    catch (Exception e)
    {
        logger.Error("Error in Index: " + e);
        return new HttpStatusCodeResult(500); // Raise internal server error
    }