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); } } }
private void _QueuePoolHelper_SendMessage(object sender, QueuePoolEventArgs <LogInfo> e) { try { Func <loger_category, bool> predicate = null; LogInfo objLogInfo = e.Message; LogSection logSection = LogSectionHelper.GetLogSection(); if (!string.IsNullOrWhiteSpace(logSection.Application)) { loger_application cacheApplication; LogMessage objLogMessage = new LogMessage { ApplicationCode = logSection.Application, LogCategory = objLogInfo.LogCategory, LogModuleTypeList = objLogInfo.LogModuleTypeList, Title = objLogInfo.Title, UserAccount = objLogInfo.UserAccount, UserHostAddress = objLogInfo.UserHostAddress, RawUrl = objLogInfo.RawUrl, UrlReferrer = objLogInfo.UrlReferrer, CreateDate = objLogInfo.CreateDate, MessageID = objLogInfo.MessageID, LogWriteMap = logSection.LogWriteMap, Message = objLogInfo.Message.ToString(), ResultMessage = objLogInfo.ResultMessage.ToString(), UserAgent = objLogInfo.UserAgent, HeadersData = objLogInfo.HeadersData, RequestData = objLogInfo.RequestData }; LogCategoryElement element = logSection.Categorys[objLogInfo.LogCategory]; if (element != null) { if (element.IsRecordDB) { LogRule rule = new LogRule(); cacheApplication = rule.GetCacheApplication(logSection.Application); if (cacheApplication != null) { objLogMessage.ApplicationID = cacheApplication.ApplicationID; objLogMessage.ApplicationName = cacheApplication.ApplicationName; objLogMessage.IDPath = cacheApplication.IDPath; this.WriteLog(objLogMessage, LogWriterType.DataLogWriter); } } if (element.IsRecordEvent) { this.WriteLog(objLogMessage, LogWriterType.EventLogWriter); } if (objLogMessage.LogWriteMap.IsNoNull()) { if (element.IsRecordText) { this.WriteLog(objLogMessage, LogWriterType.TextLogWriter); } if (element.IsRecordXml) { this.WriteLog(objLogMessage, LogWriterType.XmlLogWriter); } } } else { cacheApplication = new LogRule().GetCacheApplication(logSection.Application); if (cacheApplication != null) { objLogMessage.ApplicationID = cacheApplication.ApplicationID; objLogMessage.ApplicationName = cacheApplication.ApplicationName; objLogMessage.IDPath = cacheApplication.IDPath; if (predicate == null) { predicate = s => s.CategoryTypeCode == objLogInfo.LogCategory; } loger_category _category = cacheApplication.loger_category.FirstOrDefault <loger_category>(predicate); if (_category != null) { foreach (int num in _category.LogWriteType.ConvertListInt()) { LogWriterType objLogWriterType = (LogWriterType)num; if ((objLogWriterType == LogWriterType.DataLogWriter) || (objLogWriterType == LogWriterType.EventLogWriter)) { this.WriteLog(objLogMessage, objLogWriterType); } else if (objLogMessage.LogWriteMap.IsNoNull()) { this.WriteLog(objLogMessage, objLogWriterType); } } } } } } } catch (Exception exception) { EventLogWriter.WriterLog(exception); } }