/// <summary>
        /// Stores the logged error ID's for the current request in session for use on the Application Error error page.
        /// </summary>
        /// <remarks>
        /// Only stores logged error ID's for the current request in session when custom errors is enabled.
        /// </remarks>
        /// <param name="sender">The sender of the event.</param>
        /// <param name="args">The error logged event arguments.</param>
        public void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
        {
            if (!Context.IsCustomErrorEnabled || UserService == null)
            {
                return;
            }

            List <string> errorIDs;

            var userService = UserService;

            // Get logged error ID's for current request
            if (!userService.Session.TryGet(LoggedErrorIDKey, out errorIDs))
            {
                errorIDs = new List <string>();
            }

            // Add logged error ID
            if (!errorIDs.Contains(args.Entry.Id))
            {
                errorIDs.Add(args.Entry.Id);
            }

            // Update list of logged error ID's for current request
            userService.Session.Set(LoggedErrorIDKey, errorIDs);
        }
Example #2
0
        //protected void Application_Error(object sender, EventArgs e)
        //{
        //    ErrorSignal.FromCurrentContext().Raise(Server.GetLastError());
        //}

        protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
        {
            var result = ElmahErrorHandling.ProcessError(sender, args);

            if (!string.IsNullOrEmpty(result))
            {
                Response.Redirect(result);
            }
        }
Example #3
0
        private void OnLogged(object sender, ErrorLoggedEventArgs args)
        {
            var error   = args.Entry.Error;
            var entryId = args.Entry.Id;

            log.Error($"Произошла ошибка {entryId} (код {error.StatusCode}, подробности в Elmah):\n" +
                      $"Query string: {error.QueryString}",
                      error.Exception);
            errorsBot.PostToChannel(entryId, error);
        }
Example #4
0
        private void OnLogged(object sender, ErrorLoggedEventArgs args)
        {
            var error   = args.Entry.Error;
            var entryId = args.Entry.Id;

            log.Error(error.Exception, $"Произошла ошибка {entryId} (код {error.StatusCode}, подробности в Elmah):\n" +
                      $"Query string: {error.QueryString.ToQueryString()}"
                      );

            if (!IsErrorIgnoredForTelegramChannel(error))
            {
                errorsBot.PostToChannel(entryId, error.Exception);
            }
        }
Example #5
0
 void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
 {
     //keep the log form the last 60 days and delete the rest
     //using (var context = new ElmahContext())
     //{
     //    var baseLineDate = DateTime.UtcNow.AddDays(-60);
     //    var model = context.ELMAH_Errors.Where(p => p.TimeUtc < baseLineDate);
     //    foreach (var item in model)
     //    {
     //        context.ELMAH_Errors.Remove(item);
     //    }
     //    context.SaveChanges();
     //}
 }
Example #6
0
 // Invoked by Elmah. http://stackoverflow.com/a/2049364/507339
 void ErrorLog_Logged(object sender, ErrorLoggedEventArgs e)
 {
     Trace.TraceError("Logged ELMAH error with ID: " + e.Entry.Id);
     if (e.Entry.Error.StatusCode == 0 || e.Entry.Error.StatusCode == 500)
     {
         IController errorController = new ErrorController();
         var         routeData       = new RouteData();
         routeData.Values["action"]     = "LoggedElmahError";
         routeData.Values["controller"] = "Error";
         routeData.Values["error"]      = e.Entry;
         try
         {
             // Set the tournament Id for convenience. MAkes the navigation menu still work in context of a tournament
             routeData.Values["tournamentId"] =
                 HttpContext.Current.Request.RequestContext.RouteData.Values["tournamentId"];
         }
         catch (Exception) { }
         errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
         Response.StatusCode = 500;
         Response.End();
     }
 }
Example #7
0
        /// <summary>
        /// Process errors caught in Global.asax
        /// <para>should be inside protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)</para>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        /// <returns>null if no custom error should be displayed or a link if redirect is required to the specific location</returns>
        public static string ProcessError(object sender, ErrorLoggedEventArgs args)
        {
            if (customErrorsSection != null)
            {
                switch (customErrorsSection.Mode)
                {
                case CustomErrorsMode.Off:
                    break;

                case CustomErrorsMode.On:
                    return(customErrorsSection.DefaultRedirect + "?id=" + args.Entry.Id);

                case CustomErrorsMode.RemoteOnly:
                    if (!HttpContext.Current.Request.IsLocal)
                    {
                        return(customErrorsSection.DefaultRedirect + "?id=" + args.Entry.Id);
                    }
                    break;
                }
            }

            return(null);
        }
Example #8
0
 public void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
 {
     HttpContext.Current.Items["error"] = args.Entry.Error.Exception.Message;
 }
Example #9
0
 public void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
 {
     // This is the text shown in Error.aspx
     Context.Items["error"] = args?.Entry?.Error?.Exception?.Message ?? "Error Unknown";
 }
Example #10
0
 protected override void OnLogged(ErrorLoggedEventArgs args)
 {
     LoggedException.Add(args.Entry);
     base.OnLogged(args);
 }
        void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
        {
            PositivoErrorDetail detail = new PositivoErrorDetail();

            detail.HandleElmahEvent(System.Web.HttpContext.Current, sender, args);
        }
 void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
 {
 }
 protected void OnLogged(ErrorLoggedEventArgs args)
 {
     ErrorLoggedEventHandler logged = this.Logged;
     if (logged != null)
     {
         logged.Invoke(this, args);
     }
 }