Create a BaseController inherited from the Controller to override the base method. The newly created Controller inherits the BaseController.
Public class BaseController: controller {/// <summary> /// error page handling /// </summary> /// <param name = "filterContext"> </param> protected override void OnException (ExceptionContext filterContext) {// record the error log ErrorLog. write (filterContext );}}
Using System. IO; using System. text; using System. web; using System. web. mvc; /// <summary> /// record the error log // </summary> public class ErrorLog {public static void Write (ExceptionContext filterContext) {var dt = DateTime. now; var logPath = HttpContext. current. server. mapPath ("/log/" + dt. toString ("yyyy-MM"); if (! Directory. exists (logPath) {Directory. createDirectory (logPath);} var logFilePath = string. format ("{0}/1_12.16.txt", logPath, dt. toString ("yyyy-MM-dd"); StreamWriter writer = null; try {writer = new StreamWriter (logFilePath, true, Encoding. UTF8); writer. writeLine ("--------------------------------------------------------------------------------"); writer. writeLine ("error time:" + DateTime. now. toString ("yyyy- MM-dd HH: mm: ss "); writer. writeLine ("error message:" + filterContext. exception. message); writer. writeLine ("Controller:" + filterContext. controller); writer. writeLine ("Error Source:" + filterContext. exception. source); writer. writeLine ("stack information:" + filterContext. exception. stackTrace); writer. writeLine ("--------------------------------------------------------------------------------");} catch {} finally {if (writer! = Null) {writer. Close ();}}}}