/// <summary> /// 2016-02-14 吉日嘎拉 增加服务器调用耗时统计功能。 /// </summary> /// <param name="serviceInfo">服务调用情况</param> public static void AddLog(ServiceInfo serviceInfo) { if (!BaseSystemInfo.RecordLog) { return; } var entity = new BaseLogEntity { StartTime = serviceInfo.StartTime, TaskId = serviceInfo.TaskId, ClientIp = serviceInfo.UserInfo.IpAddress, ElapsedTicks = serviceInfo.ElapsedTicks, UserId = serviceInfo.UserInfo.UserId, CompanyId = serviceInfo.UserInfo.CompanyId.ToInt(), UserName = serviceInfo.UserInfo.RealName, WebUrl = serviceInfo.CurrentMethod.Module.Name.Replace(".dll", "") + "." + serviceInfo.CurrentMethod.Name }; // 远程添加模式 //LogHttpUtil.AddLog(serviceInfo.UserInfo, entity); // 直接写入本地数据库的方法 var logManager = new BaseLogManager(serviceInfo.UserInfo); logManager.Add(entity); }
/// <summary> /// 按日期获取日志 /// </summary> /// <param name="userInfo">用户</param> /// <param name="beginDate">开始时间</param> /// <param name="endDate">结束时间</param> /// <returns>数据表</returns> public DataTable GetDataTableByDate(BaseUserInfo userInfo, string beginDate, string endDate, string userId, string moduleId) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif DataTable dataTable = new DataTable(BaseLogEntity.TableName); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseLogManager logManager = new BaseLogManager(dbHelper, userInfo); if (!string.IsNullOrEmpty(userId)) { dataTable = logManager.GetDataTableByDateByUserIds(new string[] { userId }, BaseLogEntity.FieldProcessId, moduleId, beginDate, endDate); } else { if (userInfo.IsAdministrator) { dataTable = logManager.GetDataTableByDate(BaseLogEntity.FieldProcessId, moduleId, beginDate, endDate); } else { BasePermissionScopeManager BasePermissionScopeManager = new BasePermissionScopeManager(dbHelper, userInfo); string[] userIds = BasePermissionScopeManager.GetUserIds(userInfo.Id, "Resource.ManagePermission"); dataTable = logManager.GetDataTableByDateByUserIds(userIds, BaseLogEntity.FieldProcessId, moduleId, beginDate, endDate); } } dataTable.TableName = BaseLogEntity.TableName; // 添加访问日志 BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_GetDataTableByDate, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(dataTable); }
/// <summary> /// 2016-02-14 吉日嘎拉 增加服务器调用耗时统计功能。 /// </summary> /// <param name="serviceInfo"></param> private static void AddLog(ServiceInfo serviceInfo) { if (serviceInfo.RecordLog) { // 若用户信息没有,就获取现在的用户信息 if (serviceInfo.UserInfo == null) { serviceInfo.UserInfo = BaseSystemInfo.UserInfo; } // 本地直接写入数据库 BaseLogManager.AddLog(serviceInfo); } }
/// <summary> /// 查询日志 /// </summary> /// <param name="userInfo">用户</param> /// <param name="search">查询</param> /// <param name="OnlyOnLine">是否在线</param> /// <returns>数据表</returns> public DataTable Search(BaseUserInfo userInfo, string searchValue, bool OnlyOnLine) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif DataTable dataTable = new DataTable(BaseLogEntity.TableName); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseLogManager logManager = new BaseLogManager(dbHelper, userInfo); BasePermissionScopeManager permissionScopeManager = new BasePermissionScopeManager(dbHelper, userInfo); string[] userIds = permissionScopeManager.GetUserIds(userInfo.Id, "Resource.ManagePermission"); dataTable = logManager.Search(userIds, searchValue, OnlyOnLine, true); dataTable.TableName = BaseLogEntity.TableName; BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.UserService_Search, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(dataTable); }
/// <summary> /// 按日期获取日志(业务) /// </summary> /// <param name="userInfo">用户</param> /// <param name="beginDate">开始时间</param> /// <param name="endDate">结束时间</param> /// <returns>数据表</returns> public DataTable GetDataTableApplicationByDate(BaseUserInfo userInfo, string beginDate, string endDate) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif DataTable dataTable = new DataTable(BaseLogEntity.TableName); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(BusinessDbConnection); BaseLogManager logManager = new BaseLogManager(dbHelper, userInfo); dataTable = logManager.GetDataTableByDate(string.Empty, string.Empty, beginDate, endDate); dataTable.TableName = BaseLogEntity.TableName; // 添加访问日志 BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_GetDataTableApplicationByDate, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(dataTable); }
/// <summary> /// 批量删除日志(业务) /// </summary> /// <param name="userInfo">用户</param> /// <param name="ids">主键数组</param> /// <returns>影响行数</returns> public int BatchDeleteApplication(BaseUserInfo userInfo, string[] ids) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif int returnValue = 0; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(BusinessDbConnection); BaseLogManager logManager = new BaseLogManager(dbHelper, userInfo); returnValue = logManager.Delete(BaseLogEntity.FieldId, ids); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_BatchDeleteApplication, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return(returnValue); }
/// <summary> /// 全部清除日志 /// </summary> /// <param name="userInfo">用户</param> /// <returns>数据表</returns> public void Truncate(BaseUserInfo userInfo) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseLogManager logManager = new BaseLogManager(dbHelper, userInfo); logManager.Truncate(); BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.LogService_Truncate, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif }