protected void Application_Start() { AutoLogger.Info("[Application_Start]:[begin]"); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AutoLogger.Info("[Application_Start]:[end]"); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Application_Start(object sender, EventArgs e) { AutoLogger.Info("[Application_Start]:[begin]"); // 在应用程序启动时运行的代码 AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); GlobalConfiguration.Configure(WebApiConfig.Register); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); // 数据库配置 DbConfiguration.SetConfiguration(new MySqlEFConfiguration()); AutoLogger.Info("[Application_Start]:[end]"); }
private void Log(string methodName, RouteData routeData, IDictionary <string, object> actionParameters = null) { var controllerName = routeData.Values["controller"]; var actionName = routeData.Values["action"]; System.Text.StringBuilder parameters = new System.Text.StringBuilder(); if (actionParameters != null) { foreach (KeyValuePair <string, object> kvp in actionParameters) { if (parameters.Length > 0) { parameters.Append("&"); } parameters.Append(kvp.Key + "=" + kvp.Value); } parameters.Insert(0, "?"); } var message = String.Format("[Action Filter Log] | IP:[{4}] | controller:[{1}] action:[{2}] | [{0}] parameters:[{3}]", methodName, controllerName, actionName, parameters, GetIP()); // Debug.WriteLine(message, "Action Filter Log"); AutoLogger.Info(message); }
/// <summary> /// 记录数据库日志 /// </summary> private void RecordDbChangeLog() { AutoLogger.Trace(string.Format("-- RecordDbChangeLog BEGIN --")); // 比较改变的项目,保存修改日志 // 所有改变的实体 IEnumerable <DbEntityEntry> values = this.ChangeTracker.Entries(); foreach (DbEntityEntry value in values) { // 没有改变的实体不做记录 if (value.State == EntityState.Detached || value.State == EntityState.Unchanged) { continue; } // 获取表名和字段名 Type entityType = value.Entity.GetType(); TableAttribute tableAttribute = (TableAttribute)Attribute.GetCustomAttribute(entityType, typeof(TableAttribute)); AutoLogger.Info(string.Format("[{0}]:[修改记录 BEGIN]", entityType.Name)); DbPropertyValues dbPropertyValues = value.CurrentValues; if (value.State == EntityState.Added) { // 新加的数据,数据库中没有元数据 } else { // 修改或删除数据,数据库中有元数据 dbPropertyValues = value.GetDatabaseValues(); } foreach (string propertyName in dbPropertyValues.PropertyNames) { // 获取表名和字段名 PropertyInfo propertyInfo = entityType.GetProperty(propertyName); ColumnAttribute columnAttribute = (ColumnAttribute)Attribute.GetCustomAttribute(propertyInfo, typeof(ColumnAttribute)); // 获取当前数据的主键 // 获取变更状态 ChangedEntity changedEntity = new ChangedEntity(); changedEntity.State = value.State; changedEntity.TableName = tableAttribute.Name; changedEntity.ColumnName = columnAttribute.Name; changedEntity.CurrentValue = value.CurrentValues[propertyName]; if (value.State != EntityState.Added) { // 添加数据时,元数据为空 // 非添加数据时,才有元数据 changedEntity.DatabaseValue = dbPropertyValues[propertyName]; changedEntity.OriginalValue = value.OriginalValues[propertyName]; } AutoLogger.Trace(changedEntity.ToString()); } AutoLogger.Info(string.Format("[{0}]:[修改记录 END]", entityType.Name)); } AutoLogger.Trace(string.Format("-- RecordDbChangeLog END --")); }