using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Http.Filters; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Tango.Logging; namespace Tango.MachineService.Gateway { public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { LogManager.Default.Categories.Add(LogCategory.Debug); //LogManager.Default.RegisterLogger(new AzureCloudLogger()); GlobalConfiguration.Configuration.Filters.Add(new LogExceptionFilterAttribute()); LogManager.Default.Log("Application Started!"); //AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AzureUtils.AzureUtilsAuthenticationFactory.SetGlobalCredentials(new AzureUtils.AzureUtilsCredentials() { ClientID = GatewayConfig.CLIENT_ID, ClientSecret = GatewayConfig.CLIENT_SECRET, TenantID = GatewayConfig.TENANT_ID, SubscriptionID = GatewayConfig.SUBSCRIPTION_ID }); } public class LogExceptionFilterAttribute : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext context) { LogManager.Default.Log(context.Exception); } } protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); if (exception != null) { LogManager.Default.Log(exception, "Global Exception!"); } } } }