Beispiel #1
0
        public void AddLog(Exception objException, ExceptionLogType LogType)
        {
            var objLogController = new LogController();
            var objLogInfo       = new LogInfo();

            objLogInfo.LogTypeKey = LogType.ToString();
            if (LogType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            {
                //Add SearchException Properties
                var objSearchException = (SearchException)objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
                objLogInfo.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
                objLogInfo.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            }
            else if (LogType == ExceptionLogType.MODULE_LOAD_EXCEPTION)
            {
                //Add ModuleLoadException Properties
                var objModuleLoadException = (ModuleLoadException)objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objModuleLoadException.ModuleId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleDefId", objModuleLoadException.ModuleDefId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("FriendlyName", objModuleLoadException.FriendlyName));
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleControlSource", objModuleLoadException.ModuleControlSource));
            }
            else if (LogType == ExceptionLogType.SECURITY_EXCEPTION)
            {
                //Add SecurityException Properties
                var objSecurityException = (SecurityException)objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("Querystring", objSecurityException.Querystring));
                objLogInfo.LogProperties.Add(new LogDetailInfo("IP", objSecurityException.IP));
            }

            //Add BasePortalException Properties
            var objBasePortalException = new BasePortalException(objException.ToString(), objException);

            objLogInfo.LogProperties.Add(new LogDetailInfo("AssemblyVersion", objBasePortalException.AssemblyVersion));
            objLogInfo.LogProperties.Add(new LogDetailInfo("PortalID", objBasePortalException.PortalID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("PortalName", objBasePortalException.PortalName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserID", objBasePortalException.UserID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserName", objBasePortalException.UserName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabID", objBasePortalException.ActiveTabID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabName", objBasePortalException.ActiveTabName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("RawURL", objBasePortalException.RawURL));
            objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL));
            objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURLReferrer", objBasePortalException.AbsoluteURLReferrer));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserAgent", objBasePortalException.UserAgent));
            objLogInfo.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID));
            objLogInfo.LogProperties.Add(new LogDetailInfo("InnerException", objBasePortalException.InnerException.Message));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileName", objBasePortalException.FileName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileLineNumber", objBasePortalException.FileLineNumber.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileColumnNumber", objBasePortalException.FileColumnNumber.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Method", objBasePortalException.Method));
            objLogInfo.LogProperties.Add(new LogDetailInfo("StackTrace", objBasePortalException.StackTrace));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Message", objBasePortalException.Message));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Source", objBasePortalException.Source));
            objLogInfo.LogPortalID = objBasePortalException.PortalID;
            objLogController.AddLog(objLogInfo);
        }
        /// <summary>
        /// Write Exception information to UnhandledException.txt in the executable folder.
        /// </summary>
        /// <param name="exception">Strong typed <seealso cref="Exception"/></param>
        /// <param name="exceptionLogType">Type of exception which determines which file to log to. Not passing this parameter will default to the general log file</param>
        public static void Write(Exception exception, ExceptionLogType exceptionLogType = ExceptionLogType.General)
        {
            var fileName = "";

            switch (exceptionLogType)
            {
            case ExceptionLogType.Post:
                break;

            case ExceptionLogType.General:
                fileName = "GeneralUnhandledException.txt";
                break;
            }

            try
            {
                if (Exists(fileName))
                {
                    var contents = ReadAllText(fileName);
                    var current  = ToLogString(exception, Environment.StackTrace);
                    var data     = $"{contents}{Environment.NewLine}{current}{Environment.NewLine}";
                    WriteAllText(fileName, data);
                }
                else
                {
                    WriteAllText(fileName, ToLogString(exception, Environment.StackTrace) + Environment.NewLine);
                }
            }
            catch
            {
                // ignored - we are in no position to handle this other than protect the service from crashing.
            }
        }
Beispiel #3
0
        //public void AddLog(BasePortalException objBasePortalException)
        //{
        //    var log = new LogInfo
        //    {
        //        Exception = Exceptions.Exceptions.GetExceptionInfo(objBasePortalException),
        //    };
        //    log.Exception.AssemblyVersion = objBasePortalException.AssemblyVersion;
        //    log.Exception.PortalId = objBasePortalException.PortalID;
        //    log.Exception.UserId = objBasePortalException.UserID;
        //    log.Exception.TabId = objBasePortalException.ActiveTabID;
        //    log.Exception.RawUrl = objBasePortalException.RawURL;
        //    log.Exception.Referrer = objBasePortalException.AbsoluteURLReferrer;
        //    log.Exception.UserAgent = objBasePortalException.UserAgent;
        //    if (objBasePortalException.GetType().Name == "ModuleLoadException")
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.MODULE_LOAD_EXCEPTION);
        //    }
        //    else if (objBasePortalException.GetType().Name == "PageLoadException")
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.PAGE_LOAD_EXCEPTION);
        //    }
        //    else if (objBasePortalException.GetType().Name == "SchedulerException")
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.SCHEDULER_EXCEPTION);
        //    }
        //    else if (objBasePortalException.GetType().Name == "SecurityException")
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.SECURITY_EXCEPTION);
        //    }
        //    else if (objBasePortalException.GetType().Name == "SearchException")
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.SEARCH_INDEXER_EXCEPTION);
        //    }
        //    else
        //    {
        //        AddLog(objBasePortalException, log, ExceptionLogType.GENERAL_EXCEPTION);
        //    }
        //}

        public void AddLog(Exception objException, ExceptionLogType logType)
        {
            var log = new LogInfo {
                Exception = new ExceptionInfo(objException)
            };

            AddLog(objException, log, logType);
        }
Beispiel #4
0
        /// <summary>
        /// Adds the log provider.
        /// </summary>
        /// <typeparam name="TLogProvider">The type of the i log provider.</typeparam>
        /// <param name="type">The type.</param>
        /// <returns>ILogProvider.</returns>
        public ILogProvider AddLogProvider <TLogProvider>(ExceptionLogType type) where TLogProvider : ILogProvider
        {
            var provider = ServiceLocator.Resolve <TLogProvider>();

            AdditionalProviders.Add(new Tuple <ILogProvider, ExceptionLogType>(provider, type));

            return(provider);
        }
Beispiel #5
0
        public void AddLog(Exception objException, LogInfo log, ExceptionLogType logType)
        {
            //log.LogTypeKey = logType.ToString();
            //if (logType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            //{
            //    //Add SearchException Properties
            //    var objSearchException = (SearchException)objException;
            //    log.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
            //    log.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
            //    log.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
            //    log.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
            //    log.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            //}
            //else 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 : "/") });
            //}
        }
Beispiel #6
0
        public void AddLog(Exception objException, ExceptionLogType LogType)
        {
            var objLogController = new LogController();
            var objLogInfo = new LogInfo();
            objLogInfo.LogTypeKey = LogType.ToString();
            if (LogType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            {
				//Add SearchException Properties
                var objSearchException = (SearchException) objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
                objLogInfo.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
                objLogInfo.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            }
            else if (LogType == ExceptionLogType.MODULE_LOAD_EXCEPTION)
            {
				//Add ModuleLoadException Properties
                var objModuleLoadException = (ModuleLoadException) objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleId", objModuleLoadException.ModuleId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleDefId", objModuleLoadException.ModuleDefId.ToString()));
                objLogInfo.LogProperties.Add(new LogDetailInfo("FriendlyName", objModuleLoadException.FriendlyName));
                objLogInfo.LogProperties.Add(new LogDetailInfo("ModuleControlSource", objModuleLoadException.ModuleControlSource));
            }
            else if (LogType == ExceptionLogType.SECURITY_EXCEPTION)
            {
				//Add SecurityException Properties
                var objSecurityException = (SecurityException) objException;
                objLogInfo.LogProperties.Add(new LogDetailInfo("Querystring", objSecurityException.Querystring));
                objLogInfo.LogProperties.Add(new LogDetailInfo("IP", objSecurityException.IP));
            }
			
			//Add BasePortalException Properties
            var objBasePortalException = new BasePortalException(objException.ToString(), objException);
            objLogInfo.LogProperties.Add(new LogDetailInfo("AssemblyVersion", objBasePortalException.AssemblyVersion));
            objLogInfo.LogProperties.Add(new LogDetailInfo("PortalID", objBasePortalException.PortalID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("PortalName", objBasePortalException.PortalName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserID", objBasePortalException.UserID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserName", objBasePortalException.UserName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabID", objBasePortalException.ActiveTabID.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ActiveTabName", objBasePortalException.ActiveTabName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("RawURL", objBasePortalException.RawURL));
            objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL));
            objLogInfo.LogProperties.Add(new LogDetailInfo("AbsoluteURLReferrer", objBasePortalException.AbsoluteURLReferrer));
            objLogInfo.LogProperties.Add(new LogDetailInfo("UserAgent", objBasePortalException.UserAgent));
            objLogInfo.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider));
            objLogInfo.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID));
            objLogInfo.LogProperties.Add(new LogDetailInfo("InnerException", objBasePortalException.InnerException.Message));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileName", objBasePortalException.FileName));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileLineNumber", objBasePortalException.FileLineNumber.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("FileColumnNumber", objBasePortalException.FileColumnNumber.ToString()));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Method", objBasePortalException.Method));
            objLogInfo.LogProperties.Add(new LogDetailInfo("StackTrace", objBasePortalException.StackTrace));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Message", objBasePortalException.Message));
            objLogInfo.LogProperties.Add(new LogDetailInfo("Source", objBasePortalException.Source));
            objLogInfo.LogPortalID = objBasePortalException.PortalID;
            objLogController.AddLog(objLogInfo);
        }
        /// <summary>
        /// Write Exception information to UnhandledException.txt in the executable folder.
        /// </summary>
        /// <param name="exception">Strong typed <seealso cref="Exception"/></param>
        /// <param name="exceptionLogType">
        /// Type of exception which determines which file to log to. Not passing this parameter
        /// will default to the general log file
        /// </param>
        public static void Write(Exception exception, ExceptionLogType exceptionLogType = ExceptionLogType.General)
        {
            var fileName = "";

            /*
             * Prior to C# 9
             */
            //switch (exceptionLogType)
            //{
            //    case ExceptionLogType.Post:
            //        fileName = "PostUnhandledException.txt";
            //        break;
            //    case ExceptionLogType.General:
            //        fileName = "GeneralUnhandledException.txt";
            //        break;
            //    case ExceptionLogType.Data:
            //        fileName = "DataUnhandledException.txt";
            //        break;
            //    case ExceptionLogType.Unknown:
            //        fileName = "UnknownUnhandledException.txt";
            //        break;
            //    default: throw new NotImplementedException();
            //}

            fileName = exceptionLogType switch
            {
                ExceptionLogType.General => "GeneralUnhandledException.txt",
                ExceptionLogType.Data => "DataUnhandledException.txt",
                ExceptionLogType.Unknown => "UnknownUnhandledException.txt",
                ExceptionLogType.Post => "PostUnhandledException.txt",
                _ => throw new NotImplementedException()
            };

            try
            {
                if (Exists(fileName))
                {
                    var contents = ReadAllText(fileName);
                    var current  = ToLogString(exception, Environment.StackTrace);
                    var data     = $"{contents}{Environment.NewLine}{current}{Environment.NewLine}";
                    WriteAllText(fileName, data);
                }
                else
                {
                    WriteAllText(fileName, ToLogString(exception, Environment.StackTrace) + Environment.NewLine);
                }
            }
            catch
            {
                // ignored - we are in no position to handle this other than protect the app from crashing.
            }
        }
Beispiel #8
0
        public void AddLog(Exception objException, LogInfo log, ExceptionLogType logType)
        {
            log.LogTypeKey = logType.ToString();
            if (logType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            {
                //Add SearchException Properties
                var objSearchException = (SearchException)objException;
                log.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
                log.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
                log.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            }
            else 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;
            LogController.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 : "/")
                });
            }
        }
        /// <summary>
        /// Write Exception information to UnhandledException.txt in the executable folder.
        /// </summary>
        /// <param name="exception">Strong typed <seealso cref="Exception"/></param>
        /// <param name="exceptionLogType">
        /// Type of exception which determines which file to log to.
        /// Not passing this parameter will default to the general log file
        /// </param>
        public static void Write(Exception exception, ExceptionLogType exceptionLogType, string text = "")
        {
            var fileName = "";

            switch (exceptionLogType)
            {
            case ExceptionLogType.ConnectionFailure:
                fileName = "ConnectionFailure.txt";
                break;

            case ExceptionLogType.General:
                fileName = "GeneralUnhandledException.txt";
                break;
            }

            try
            {
                if (Exists(fileName))
                {
                    var contents = ReadAllText(fileName);
                    var current  = ToLogString(exception, Environment.StackTrace);
                    var data     = $"{contents}{Environment.NewLine}{current}{Environment.NewLine}";

                    if (!string.IsNullOrWhiteSpace(text))
                    {
                        data += $"{text}{Environment.NewLine}";
                    }
                    WriteAllText(fileName, data);
                }
                else
                {
                    if (!string.IsNullOrWhiteSpace(text))
                    {
                        WriteAllText(fileName,
                                     ToLogString(exception, Environment.StackTrace) +
                                     Environment.NewLine + text + Environment.NewLine);
                    }
                    else
                    {
                        WriteAllText(fileName,
                                     ToLogString(exception, Environment.StackTrace) + Environment.NewLine + text);
                    }
                }
            }
            catch
            {
                // ignored - we are in no position to handle this other than protect the service from crashing.
            }
        }
        public void AddLog(Exception objException, ExceptionLogType logType)
        {
            var log = new LogInfo {LogTypeKey = logType.ToString()};
            if (logType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            {
				//Add SearchException Properties
                var objSearchException = (SearchException) objException;
                log.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
                log.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
                log.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            }
            else 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("AssemblyVersion", objBasePortalException.AssemblyVersion));
            log.LogProperties.Add(new LogDetailInfo("PortalID", objBasePortalException.PortalID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("PortalName", objBasePortalException.PortalName));
            log.LogProperties.Add(new LogDetailInfo("UserID", objBasePortalException.UserID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("UserName", objBasePortalException.UserName));
            log.LogProperties.Add(new LogDetailInfo("ActiveTabID", objBasePortalException.ActiveTabID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("ActiveTabName", objBasePortalException.ActiveTabName));
            log.LogProperties.Add(new LogDetailInfo("RawURL", objBasePortalException.RawURL));
            log.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL));
            log.LogProperties.Add(new LogDetailInfo("AbsoluteURLReferrer", objBasePortalException.AbsoluteURLReferrer));
            log.LogProperties.Add(new LogDetailInfo("UserAgent", objBasePortalException.UserAgent));
            log.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider));
            log.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID));
            log.LogProperties.Add(new LogDetailInfo("InnerException", objBasePortalException.InnerException.Message));
            log.LogProperties.Add(new LogDetailInfo("FileName", objBasePortalException.FileName));
            log.LogProperties.Add(new LogDetailInfo("FileLineNumber", objBasePortalException.FileLineNumber.ToString()));
            log.LogProperties.Add(new LogDetailInfo("FileColumnNumber", objBasePortalException.FileColumnNumber.ToString()));
            log.LogProperties.Add(new LogDetailInfo("Method", objBasePortalException.Method));
            log.LogProperties.Add(new LogDetailInfo("StackTrace", objBasePortalException.StackTrace));
            log.LogProperties.Add(new LogDetailInfo("Message", objBasePortalException.Message));
            log.LogProperties.Add(new LogDetailInfo("Source", objBasePortalException.Source));
            log.LogPortalID = objBasePortalException.PortalID;
            LogController.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});
            }
        }
Beispiel #11
0
 /// <summary>
 /// Adds the log provider.
 /// </summary>
 /// <typeparam name="TLogProvider">The type of the i log provider.</typeparam>
 /// <param name="type">The type.</param>
 /// <returns></returns>
 public ILogProvider AddLogProvider <TLogProvider>(ExceptionLogType type) where TLogProvider : ILogProvider
 {
     return(ServiceLocator.Resolve <TLogProvider>());
 }
        public void AddLog(Exception objException, ExceptionLogType logType)
        {
            var log = new LogInfo {
                LogTypeKey = logType.ToString()
            };

            if (logType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
            {
                //Add SearchException Properties
                var objSearchException = (SearchException)objException;
                log.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
                log.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
                log.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
                log.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
            }
            else 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("AssemblyVersion", objBasePortalException.AssemblyVersion));
            log.LogProperties.Add(new LogDetailInfo("PortalID", objBasePortalException.PortalID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("PortalName", objBasePortalException.PortalName));
            log.LogProperties.Add(new LogDetailInfo("UserID", objBasePortalException.UserID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("UserName", objBasePortalException.UserName));
            log.LogProperties.Add(new LogDetailInfo("ActiveTabID", objBasePortalException.ActiveTabID.ToString()));
            log.LogProperties.Add(new LogDetailInfo("ActiveTabName", objBasePortalException.ActiveTabName));
            log.LogProperties.Add(new LogDetailInfo("RawURL", objBasePortalException.RawURL));
            log.LogProperties.Add(new LogDetailInfo("AbsoluteURL", objBasePortalException.AbsoluteURL));
            log.LogProperties.Add(new LogDetailInfo("AbsoluteURLReferrer", objBasePortalException.AbsoluteURLReferrer));
            log.LogProperties.Add(new LogDetailInfo("UserAgent", objBasePortalException.UserAgent));
            log.LogProperties.Add(new LogDetailInfo("DefaultDataProvider", objBasePortalException.DefaultDataProvider));
            log.LogProperties.Add(new LogDetailInfo("ExceptionGUID", objBasePortalException.ExceptionGUID));
            log.LogProperties.Add(new LogDetailInfo("InnerException", objBasePortalException.InnerException.Message));
            log.LogProperties.Add(new LogDetailInfo("FileName", objBasePortalException.FileName));
            log.LogProperties.Add(new LogDetailInfo("FileLineNumber", objBasePortalException.FileLineNumber.ToString()));
            log.LogProperties.Add(new LogDetailInfo("FileColumnNumber", objBasePortalException.FileColumnNumber.ToString()));
            log.LogProperties.Add(new LogDetailInfo("Method", objBasePortalException.Method));
            log.LogProperties.Add(new LogDetailInfo("StackTrace", objBasePortalException.StackTrace));
            log.LogProperties.Add(new LogDetailInfo("Message", objBasePortalException.Message));
            log.LogProperties.Add(new LogDetailInfo("Source", objBasePortalException.Source));
            log.LogPortalID = objBasePortalException.PortalID;
            LogController.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
                });
            }
        }
		public void AddLog(Exception objException, LogInfo log, ExceptionLogType logType)
		{
			log.LogTypeKey = logType.ToString();
			if (logType == ExceptionLogType.SEARCH_INDEXER_EXCEPTION)
			{
				//Add SearchException Properties
				var objSearchException = (SearchException)objException;
				log.LogProperties.Add(new LogDetailInfo("ModuleId", objSearchException.SearchItem.ModuleId.ToString()));
				log.LogProperties.Add(new LogDetailInfo("SearchItemId", objSearchException.SearchItem.SearchItemId.ToString()));
				log.LogProperties.Add(new LogDetailInfo("Title", objSearchException.SearchItem.Title));
				log.LogProperties.Add(new LogDetailInfo("SearchKey", objSearchException.SearchItem.SearchKey));
				log.LogProperties.Add(new LogDetailInfo("GUID", objSearchException.SearchItem.GUID));
			}
			else 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;
			LogController.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 : "/") });
			}
		}
		public void AddLog(Exception objException, ExceptionLogType logType)
		{
			var log = new LogInfo { Exception = new ExceptionInfo(objException) };
			AddLog(objException, log, logType);
		}