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);}
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.