log4net log all unhandled application errors log4net log all unhandled application errors asp.net asp.net

log4net log all unhandled application errors


I paste below the code I use on my global.asax that seems to satisfy me for now.. I am getting all unhandled exceptions on my log4net generated log files..

    public class MvcApplication : System.Web.HttpApplication    {        private static readonly ILog log = LogManager.GetLogger(typeof(MvcApplication));        void Application_Error(Object sender, EventArgs e)        {            Exception ex = Server.GetLastError().GetBaseException();            log.Error("App_Error", ex);        }        public static void RegisterRoutes(RouteCollection routes)        {            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");            routes.MapRoute(                "Default",                "{controller}/{action}/{id}",                new { controller = "Home", action = "Index", id = "" }            );        }        protected void Application_Start()        {            RegisterRoutes(RouteTable.Routes);            log4net.Config.XmlConfigurator.Configure();        }    }


For ASP.NET applications you like to use the System.Web.HttpApplication.Error event which is placed in Global.asax file.

protected void Application_Error(Object sender, EventArgs e){    Exception ex = Server.GetLastError();    // Stop error from displaying on the client browser    Context.ClearError();    logger.Fatal(ex.ToString);}

watch Managing unhandled exceptions


You might be interested to check out what Aspect Oriented Programming (AOP) is.

We accomplished this with Post sharp (only - we didn't use log4net but custom tracer).

Just check out first if log4net haven't something for this 'out-of-the-box'. I'm not sure about that.