Пример #1
0
        public static void LogMessage(Exception exp, MessageStructure msgStructure)
        {
            try
            {
                StringBuilder sbLogEntry = new StringBuilder();
                sbLogEntry.AppendLine();
                sbLogEntry.AppendLine(msgStructure.UserFriendlyMessage);
                if (!string.IsNullOrEmpty(exp.Message))
                {
                    sbLogEntry.AppendLine(exp.Message);
                }
                sbLogEntry.AppendLine("Stack Trace: ");
                sbLogEntry.AppendLine(exp.StackTrace);


                // Creates and fills the log entry with user information
                LogEntry logEntry = new LogEntry();
                logEntry.Severity = (System.Diagnostics.TraceEventType)Convert.ToInt32(msgStructure.Severity);
                logEntry.Message  = sbLogEntry.ToString();
                logEntry.Categories.Clear();
                // Writes the log entry.
                Logger.Write(logEntry);

                UserContext userContext = (UserContext)HttpContext.Current.Session[AppConstant.UserContext];
                string      userName    = userContext.UserName;
                //string userName = HttpContext.Current.User.Identity.Name;

                EmailManager  emailManager  = EmailManager.GetInstance();
                EmailTemplate emailTemplate = EmailTemplate.GetInstance();

                emailTemplate.TemplateLocation = HttpContext.Current.Server.MapPath(CommonFunctions.GetConfigurationSettings("EmailTemplateFilePath"));

                emailTemplate.Templatename = "NotifyException";

                emailTemplate.From = CommonFunctions.GetConfigurationSettings("SenderEmail");

                if (!string.IsNullOrEmpty(exp.Message))
                {
                    string   getEmailToFromConfig = CommonFunctions.GetConfigurationSettings("EmailTo");
                    string[] strEmailArray        = getEmailToFromConfig.Split(',');
                    for (int i = 0; i < strEmailArray.Count(); i++)
                    {
                        emailTemplate.To = strEmailArray[i];
                        MergeFields mergeEmailContents = new MergeFields();
                        mergeEmailContents.AppName          = HttpContext.Current.Request.ApplicationPath.Replace('/', ' ');
                        mergeEmailContents.DateTime         = DateTime.Now.ToString();
                        mergeEmailContents.WEBURL           = HttpContext.Current.Request.Url.AbsolutePath.Substring(1).ToString();
                        mergeEmailContents.UserName         = userName;
                        mergeEmailContents.ExceptionMessage = exp.Message;
                        mergeEmailContents.StackTrace       = exp.StackTrace;

                        string connName = ConfigurationManager.ConnectionStrings[1].Name;

                        SqlConnectionStringBuilder connString = new SqlConnectionStringBuilder(
                            ConfigurationManager.ConnectionStrings[connName].ConnectionString);

                        string userID                 = " " + "User ID= " + connString.UserID + ";";
                        string dataSource             = "Data Source= " + connString.DataSource + ";";
                        string dbName                 = " " + "Initial Catalog= " + connString.InitialCatalog;
                        string persistentInfoSecurity = " " + "Persist Security Info= " +
                                                        connString.PersistSecurityInfo.ToString() + ";";
                        string enlist = " " + "Enlist= " + connString.Enlist.ToString() + ";";
                        mergeEmailContents.AppDBConnString = dataSource + dbName +
                                                             persistentInfoSecurity + enlist + userID;

                        //Sends the Email.
                        emailManager.SendMail(emailTemplate, mergeEmailContents);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }