예제 #1
0
        public void WriteLog(OperationType operationType, string tableName, string sqlQuery)
        {
            OperationLogInfo objLogInfo = new OperationLogInfo {
                OperationType     = operationType,
                LogModuleTypeCode = this._LogModuleType,
                TableName         = tableName,
                SqlQuery          = sqlQuery
            };

            _LogWriterFactory.EnqueueLog(objLogInfo);
        }
        private void _QueuePoolHelper_SendMessage(object sender, QueuePoolEventArgs <OperationLogInfo> e)
        {
            OperationLogInfo message = e.Message;

            try
            {
                LogSection logSection = LogSectionHelper.GetLogSection();
                if (!string.IsNullOrWhiteSpace(logSection.Application))
                {
                    LogRule           rule             = new LogRule();
                    loger_application cacheApplication = rule.GetCacheApplication(logSection.Application);
                    if (cacheApplication != null)
                    {
                        loger_operationloging _operationloging = new loger_operationloging {
                            ApplicationID   = cacheApplication.ApplicationID,
                            ApplicationName = cacheApplication.ApplicationName,
                            Account         = message.UserAccount,
                            TableName       = message.TableName,
                            OperationTypeID = (int)message.OperationType,
                            SqlQuery        = message.SqlQuery,
                            CreateDate      = message.CreateDate,
                            IDPath          = cacheApplication.IDPath,
                            ModuleTypeCode  = message.LogModuleTypeCode,
                            ApplicationHost = LogSectionHelper.Host,
                            UserHostAddress = message.UserHostAddress,
                            UrlReferrer     = message.UrlReferrer,
                            RawUrl          = message.RawUrl
                        };
                        rule.CurrentEntities.AddTologer_operationloging(_operationloging);
                        rule.SaveChanges();
                    }
                }
            }
            catch (Exception exception)
            {
                try
                {
                    LogHelper <LogModuleType> .Write(LogModuleType.LogManager, "记录操作日志出现异常", exception, "");
                }
                catch (Exception exception2)
                {
                    EventLogWriter.WriterLog(exception2);
                }
            }
        }
 public void EnqueueLog(OperationLogInfo objLogInfo)
 {
     this._QueuePoolHelper.EnqueueInvokePool(objLogInfo);
 }