using log4net; using NLog; using Resources.Helper; using System; using System.Data.Entity; using System.Threading; using System.Web; using System.Web.Http; using System.Web.Http.ExceptionHandling; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Weee.DAL; namespace Weee { public class WeeeTraceSourceExceptionLogger : ExceptionLogger { public override void Log(ExceptionLoggerContext context) { Logger log = NLog.LogManager.GetCurrentClassLogger(); Exception tmpEx = CScommon.Exceptions.inner(context.Exception); //log.Error("App_Error", context.Exception); log.Error(tmpEx); log.Error(context.Exception.StackTrace); } } public class MvcApplication : System.Web.HttpApplication { void Application_Error(Object sender, EventArgs e) { Exception ex = Server.GetLastError().GetBaseException(); Logger log = NLog.LogManager.GetCurrentClassLogger(); log.Error("App_Error", ex); log.Error(ex.StackTrace); } protected void Application_Start() { IoCConfig.RegisterDependencies(); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); GlobalConfiguration.Configuration.EnsureInitialized(); string log4netPath = Server.MapPath("~/log4net.config"); log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(log4netPath)); Database.SetInitializer(new MigrateDatabaseToLatestVersion()); GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; GlobalConfiguration.Configuration.Services.Add(typeof(IExceptionLogger),new WeeeTraceSourceExceptionLogger()); Application["customLoginImg"] = ""; } /* * Replicate the culture logic from ApiMultilanguageAttribute and MvcMultilanguageAttribute here, * so that culture can be set BEFORE model binding, otherwise model validation message won't be localized. */ protected void Application_BeginRequest() { string cultureName = null; // Attempt to read the culture cookie from Request HttpCookie cultureCookie = HttpContext.Current.Request.Cookies["_culture"]; if (cultureCookie != null) cultureName = cultureCookie.Value; else cultureName = CultureHelper.GetImplementedCulture(cultureName); // This is safe Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName); Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; } } }