private static MFIAppLog log;//= NAppLoggerManager.GetLogger(typeof(NAppErrorFilter));
        #endregion

        #region 重写方法
        public override void OnException(ExceptionContext filterContext)
        {
            if (filterContext.IsNullOrEmpty())
            {
                throw new ArgumentNullException("filterContext is null");
            }

            var ex = filterContext.Exception as Exception;

            var refUrl = filterContext.HttpContext.Request.UrlReferrer.IsNullOrEmpty()
                             ? ""
                             : filterContext.HttpContext.Request.UrlReferrer.OriginalString;

            log = MFAppLoggerManager.GetLogger(filterContext.Controller.GetType());
            var errorMessage = "错误信息:{0}-Controller:{1}-Action:{2},源Url:{3}".FormatWith(ex.Message,
                                                                                        filterContext.RouteData.Values[
                                                                                            "controller"],
                                                                                        filterContext.RouteData.Values[
                                                                                            "action"], refUrl);

            log.Error(errorMessage, ex);

            filterContext.Controller.ViewData["ErrorMessage"] = ex.Message;

            filterContext.Result = new ViewResult()
            {
                ViewName = "Error", ViewData = filterContext.Controller.ViewData
            };

            filterContext.ExceptionHandled = true;

            filterContext.HttpContext.ClearError();
        }
Beispiel #2
0
 private static MFIAppLog[] WrapLoggers(ILogger[] loggers)
 {
     MFIAppLog[] logArray = new MFIAppLog[loggers.Length];
     for (int i = 0; i < loggers.Length; i++)
     {
         logArray[i] = WrapLogger(loggers[i]);
     }
     return(logArray);
 }