using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Hosting; using System.Web.Http; using System.Web.Http.Filters; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace Tango.MachineService { public class WebApiApplication : System.Web.HttpApplication { //Create filter public class LogExceptionFilterAttribute : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext context) { ErrorLogService.LogError(context.Exception); } } protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //register your filter with Web API pipeline GlobalConfiguration.Configuration.Filters.Add(new LogExceptionFilterAttribute()); } //common service to be used for logging errors public static class ErrorLogService { public static void LogError(Exception ex) { //Email developers, call fire department, log to database etc. } } } }