private static void InternalReportError(string folder, string itemType, string bankKey, string itemId, ErrorCategory category, ErrorSeverity severity, string msg, string detail) { // If deduplicate, find out if this error has already been reported for this particular item. if (DeDuplicate) { // Create a hash of the itemId and message var errHash = new ShaHash(string.Concat(itemType, bankKey, itemId, msg)); // If it's aready in the set then exit if (!s_ErrorsReported.Add(errHash)) { return; // Already reported an error of this type on this item } } if (m_ErrorReport == null) { InitErrorReport(); } if (CurrentPackageName != null) { folder = string.Concat(CurrentPackageName, "/", folder); } // "Folder,ItemType,BankKey,ItemId,Category,Severity,ErrorMessage,Detail" m_ErrorReport.WriteLine(string.Join(",", Tabulator.CsvEncode(folder), Tabulator.CsvEncode(bankKey), Tabulator.CsvEncode(itemId), Tabulator.CsvEncode(itemType), category.ToString(), severity.ToString(), Tabulator.CsvEncode(msg), Tabulator.CsvEncode(detail))); ++ErrorCount; }
private static void InitErrorReport() { if (m_ErrorReport != null) { return; } m_ErrorReport = new StreamWriter(ErrorReportPath, false, Encoding.UTF8); m_ErrorReport.WriteLine("Folder,BankKey,ItemId,ItemType,Category,Severity,ErrorMessage,Detail"); var application = System.Reflection.Assembly.GetExecutingAssembly(); string detail = $"version='{application.GetName().Version}' options='{Program.Options}'"; m_ErrorReport.WriteLine(string.Join(",", string.Empty, string.Empty, string.Empty, string.Empty, ErrorCategory.System.ToString(), ErrorSeverity.Message.ToString(), "Tabulator Start", Tabulator.CsvEncode(detail))); }