/// <inheritdoc/> public override void SendLogNotifications() { List <LogTypeConfigInfo> configInfos = CBO.FillCollection <LogTypeConfigInfo>(DataProvider.Instance().GetEventLogPendingNotifConfig()); foreach (LogTypeConfigInfo typeConfigInfo in configInfos) { IDataReader dr = DataProvider.Instance().GetEventLogPendingNotif(Convert.ToInt32(typeConfigInfo.ID)); string log = string.Empty; try { while (dr.Read()) { LogInfo logInfo = FillLogInfo(dr); log += logInfo.Serialize() + Environment.NewLine + Environment.NewLine; } } finally { CBO.CloseDataReader(dr, true); } Mail.Mail.SendEmail(typeConfigInfo.MailFromAddress, typeConfigInfo.MailToAddress, "Event Notification", string.Format("<pre>{0}</pre>", HttpUtility.HtmlEncode(log))); DataProvider.Instance().UpdateEventLogPendingNotif(Convert.ToInt32(typeConfigInfo.ID)); } }
public override object GetSingleLog(LogInfo logInfo, ReturnType returnType) { IDataReader dr = DataProvider.Instance().GetSingleLog(logInfo.LogGUID); LogInfo log = null; try { if (dr != null) { dr.Read(); log = FillLogInfo(dr); } } finally { CBO.CloseDataReader(dr, true); } if (returnType == ReturnType.LogInfoObjects) { return(log); } var xmlDoc = new XmlDocument(); if (log != null) { xmlDoc.LoadXml(log.Serialize()); } return(xmlDoc.DocumentElement); }
public void AddLog(Exception objException, LogInfo log, ExceptionLogType logType) { log.LogTypeKey = logType.ToString(); if (logType == ExceptionLogType.MODULE_LOAD_EXCEPTION) { //Add ModuleLoadException Properties var objModuleLoadException = (ModuleLoadException)objException; log.LogProperties.Add(new LogDetailInfo("ModuleId", objModuleLoadException.ModuleId.ToString())); log.LogProperties.Add(new LogDetailInfo("ModuleDefId", objModuleLoadException.ModuleDefId.ToString())); log.LogProperties.Add(new LogDetailInfo("FriendlyName", objModuleLoadException.FriendlyName)); log.LogProperties.Add(new LogDetailInfo("ModuleControlSource", objModuleLoadException.ModuleControlSource)); } else if (logType == ExceptionLogType.SECURITY_EXCEPTION) { //Add SecurityException Properties var objSecurityException = (SecurityException)objException; log.LogProperties.Add(new LogDetailInfo("Querystring", objSecurityException.Querystring)); log.LogProperties.Add(new LogDetailInfo("IP", objSecurityException.IP)); } //Add BasePortalException Properties var objBasePortalException = new BasePortalException(objException.ToString(), objException); log.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL)); log.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider)); log.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID)); log.LogPortalID = objBasePortalException.PortalID; var sqlException = objException as SqlException; if (sqlException != null && (uint)sqlException.ErrorCode == 0x80131904 && sqlException.Number == 4060) { // This is to avoid stack-overflow exception when a database connection exception occurs // bercause the logger will try to write to the database and goes in a loop of failures. Trace.TraceError(log.Serialize()); } else { Instance.AddLog(log); } //when current user is host user and exception is PageLoadException, try to log the log guid into cookies. //so that this log can be picked and do more action on it later. if (logType == ExceptionLogType.PAGE_LOAD_EXCEPTION && HttpContext.Current != null && UserController.Instance.GetCurrentUserInfo().IsSuperUser) { HttpContext.Current.Response.Cookies.Add( new HttpCookie("LogGUID", log.LogGUID) { HttpOnly = false, Path = (!string.IsNullOrEmpty(Globals.ApplicationPath) ? Globals.ApplicationPath : "/") }); } }
private static void AddLogToFile(LogInfo logInfo) { try { var f = Globals.HostMapPath + "\\Logs\\LogFailures.xml.resources"; WriteLog(f, logInfo.Serialize()); } // ReSharper disable EmptyGeneralCatchClause catch (Exception exc) // ReSharper restore EmptyGeneralCatchClause { Logger.Error(exc); } }
private static void AddLogToFile(LogInfo logInfo) { try { var f = Globals.HostMapPath + "\\Logs\\LogFailures.xml.resources"; WriteLog(f, logInfo.Serialize()); } // ReSharper disable EmptyGeneralCatchClause catch (Exception exc) // ReSharper restore EmptyGeneralCatchClause { Logger.Error(exc); } }
//-------------------------------------------------------------- //Method to add a log entry //-------------------------------------------------------------- public override void AddLog( LogInfo objLogInfo ) { string ConfigPortalID; if( objLogInfo.LogPortalID != Null.NullInteger ) { ConfigPortalID = objLogInfo.LogPortalID.ToString(); } else { ConfigPortalID = "*"; } LogTypeConfigInfo objLogTypeConfigInfo; objLogTypeConfigInfo = GetLogTypeConfig( ConfigPortalID, objLogInfo.LogTypeKey ); if (objLogTypeConfigInfo != null && objLogTypeConfigInfo.LoggingIsActive) { objLogInfo.LogFileID = objLogTypeConfigInfo.ID; objLogInfo.LogCreateDateNum = DateToNum(objLogInfo.LogCreateDate); LogQueueItem objLogQueueItem = new LogQueueItem(); objLogQueueItem.LogString = objLogInfo.Serialize(); objLogQueueItem.LogTypeConfigInfo = objLogTypeConfigInfo; bool UseEventLogBuffer = true; if (Globals.HostSettings.ContainsKey("EventLogBuffer")) { if (Convert.ToString(Globals.HostSettings["EventLogBuffer"]) != "Y") { UseEventLogBuffer = false; } } else { UseEventLogBuffer = false; } SchedulingProvider scheduler = SchedulingProvider.Instance(); if (objLogInfo.BypassBuffering | SchedulingProvider.Enabled == false | scheduler.GetScheduleStatus() == ScheduleStatus.STOPPED | UseEventLogBuffer == false) { WriteLog(objLogQueueItem); } else { LogQueue.Add(objLogQueueItem); } } }