如何使用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获得“并非所有代码路径都返回一个值”。
那我怎么解决这个问题呢?
答案 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
}