KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm currently using log4net in my ASP.NET MVC application to log exceptions. The way I'm doing this is by having all my controllers inherit from a BaseController class. In the BaseController's OnActionExecuting event, I log any exceptions that may have occurred: protected override void OnActionExecuted(ActionExecutedContext filterContext) { // Log any exceptions ILog log = LogManager.GetLogger(filterContext.Controller.GetType()); if (filterContext.Exception != null) { log.Error("Unhandled exception: " + filterContext.Exception.Message + ". Stack trace: " + filterContext.Exception.StackTrace, filterContext.Exception); } } This works great if an unhandled exception occurred during a controller action. As for 404 errors, I have a custom error set up in my web.config like so: <customErrors mode="On"> <error statusCode="404" redirect="~/page-not-found"/> </customErrors> And in the controller action that handles the "page-not-found" url, I log the original url being requested: [AcceptVerbs(HttpVerbs.Get)] public ActionResult PageNotFound() { log.Warn("404 page not found - " + Utils.SafeString(Request.QueryString["aspxerrorpath"])); return View(); } And this also works. The problem that I'm having is how to log errors that are on the .aspx pages themselves. Let's say I have a compilation error on one of the pages or some inline code that will throw an exception: <% ThisIsNotAValidFunction(); %> <% throw new Exception("help!"); %> It appears that the HandleError attribute is correctly rerouting this to my Error.aspx page in the Shared folder, but it is definitely not being caught by my BaseController's OnActionExecuted method. I was thinking I could maybe put the logging code on the Error.aspx page itself, but I'm unsure o
Tags (comma-separated)
Save Edits
Cancel