//................................. private XmlNode AddMailBoxError(XmlNode inEntry, LogErrorLevelFile inErrorLevelFile, string inErrorStr, string inErrorStrDetail, bool inSent) { string timeStr = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); XmlNode error = XMLDocManager.AddNode(_errorMailBox, inEntry, @"Error"); XMLDocManager.AddAttribute(_errorMailBox, error, @"id", Convert.ToString((int)inErrorLevelFile)); XMLDocManager.AddAttribute(_errorMailBox, error, @"file", GetLogErrorLevelFileStr(inErrorLevelFile)); XMLDocManager.AddAttribute(_errorMailBox, error, @"time", timeStr); XMLDocManager.AddAttribute(_errorMailBox, error, @"sent", inSent ? @"true" : @"false"); XMLDocManager.AddAttribute(_errorMailBox, error, @"name", inErrorStr); XMLDocManager.AddAttribute(_errorMailBox, error, @"detail", inErrorStrDetail); //::::::::::::::::::::::::::::::: if (onErrorFunc != null) { LogErrorLevel errorLevel = (LogErrorLevel)Convert.ToInt32(inEntry.Attributes[@"id"].Value); onErrorFunc(errorLevel, timeStr, inErrorLevelFile, inErrorStr, inErrorStrDetail, inSent); } //::::::::::::::::::::::::::::::: return(error); }
//................................. public void LogError(LogErrorLevel inErrorLevel, LogErrorLevelFile inErrorLevelFile, string inErrorStr, string inErrorStrDetail) { try { string str = GetLogErrorStr(inErrorLevel, inErrorLevelFile, inErrorStr); //getLoggerScrErr().Log(LogLevel.Error, str); //getLoggerFileErr().Log(LogLevel.Error, str); AddMailBoxEntryError(inErrorLevel, inErrorLevelFile, inErrorStr, inErrorStrDetail); } catch (Exception) { } }
//................................. private void AddMailBoxEntryError(LogErrorLevel inErrorLevel, LogErrorLevelFile inErrorLevelFile, string inErrorStr, string inErrorStrDetail) { OpenErrorMailBox(_errorMailBox); //:::::::::::::::::::::::::::::::: try { XmlNode entry = GetEntry(inErrorLevel); bool sent; if (!MailBoxEntryLocked(entry)) { sent = true; XmlNode error = AddMailBoxError(entry, inErrorLevelFile, inErrorStr, inErrorStrDetail, sent); SendErrorEmail(error); LockEntry(entry); } else { sent = false; AddMailBoxError(entry, inErrorLevelFile, inErrorStr, inErrorStrDetail, sent); } try { SaveErrorEmailBox(_errorMailBox, _errorMailBoxPath); } catch (Exception e) { LogWarning(string.Format(@"AddMailBoxEntryError: Summa failed to saved error mailbox Message: {0} StackTrace: {1}", e.Message, e.StackTrace)); } } catch (Exception e) { LogWarning(e.Message); } //:::::::::::::::::::::::::::::::: CloseErrorMailBox(_errorMailBox); }
//::::::::::::::::::::::::::::::::: public string GetLogErrorLevelFileStr(LogErrorLevelFile inErrorLevelFile) { switch (inErrorLevelFile) { case LogErrorLevelFile.None: return(@""); case LogErrorLevelFile.ConfigFile: return(@"Configuration file"); case LogErrorLevelFile.TransactionXMLFile: return(@"Transaction XML file"); case LogErrorLevelFile.UpdateMemberXMLFile: return(@"UpdateMember XML file"); case LogErrorLevelFile.ListCategoriesXMLFile: return(@"ListCategories XML file"); case LogErrorLevelFile.ListProductTypesXMLFile: return(@"ListProductTypes XML file"); case LogErrorLevelFile.ListPaymentTypesXMLFile: return(@"ListPaymentTypes XML file"); case LogErrorLevelFile.ListGroupsXMLFile: return(@"ListGroups XML file"); case LogErrorLevelFile.ListStaffXMLFile: return(@"ListStaff XML file"); case LogErrorLevelFile.ListDiscountsXMLFile: return(@"ListDiscounts XML file"); case LogErrorLevelFile.ListCalculatedXMLFile: return(@"ListCalculated XML file"); case LogErrorLevelFile.TotalsDiscountsXMLFile: return(@"TotalDiscounts XML file"); case LogErrorLevelFile.ListMemberGroupsXMLFile: return(@"ListMemberGroups XML file"); case LogErrorLevelFile.ListRosterXMLFile: return(@"ListRoster XML file"); case LogErrorLevelFile.RequestXMLFile: return(@"Request XML file"); case LogErrorLevelFile.UnknownXMLFile: return(@"Unknown XML file"); default: return(@""); } }
//::::::::::::::::::::::::::::::::: private string GetLogErrorStr(LogErrorLevel inErrorLevel, LogErrorLevelFile inErrorLevelFile, string inErrorStr) { return(string.Format("Error: {0} : {1} : {2}", GetLogErrorLevelStr(inErrorLevel), GetLogErrorLevelFileStr(inErrorLevelFile), inErrorStr)); }