Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Web;
- using Elmah;
- namespace Data.Shared.Utils
- {
- public class SyncErrorMailModule : ErrorMailModule
- {
- protected override void ReportErrorAsync(Error error)
- {
- ReportError(error); // force synchronous - otherwise emails are not sent.
- }
- }
- public static class ElmahExtension
- {
- public static void LogToElmah(this Exception ex)
- {
- if (HttpContext.Current != null)
- {
- ErrorSignal.FromCurrentContext().Raise(ex);
- }
- else
- {
- if (httpApplication == null) InitNoContext();
- ErrorSignal.Get(httpApplication).Raise(ex);
- }
- }
- private static HttpApplication httpApplication = null;
- private static ErrorFilterConsole errorFilter = new ErrorFilterConsole();
- private static SyncErrorMailModule ErrorEmail = new SyncErrorMailModule();
- private static ErrorLogModule ErrorLog = new ErrorLogModule();
- private static ErrorTweetModule ErrorTweet = new ErrorTweetModule();
- private static void InitNoContext()
- {
- httpApplication = new HttpApplication();
- errorFilter.Init(httpApplication);
- (ErrorEmail as IHttpModule).Init(httpApplication);
- errorFilter.HookFiltering(ErrorEmail);
- (ErrorLog as IHttpModule).Init(httpApplication);
- errorFilter.HookFiltering(ErrorLog);
- (ErrorTweet as IHttpModule).Init(httpApplication);
- errorFilter.HookFiltering(ErrorTweet);
- }
- private class ErrorFilterConsole : ErrorFilterModule
- {
- public void HookFiltering(IExceptionFiltering module)
- {
- module.Filtering += new ExceptionFilterEventHandler(base.OnErrorModuleFiltering);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement