Example #1
0
        /// <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));
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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 : "/")
                });
            }
        }
Example #4
0
 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);
     }
 }
Example #5
0
        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);
                }
            }
        }