Esempio n. 1
0
        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]");
        }
Esempio n. 2
0
        /// <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]");
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        /// <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 --"));
        }