private static string GetExceptionItem(Exception ex, ExceptionItem item, ExceptionTextFormat format, int tabLevel) { string itemText = string.Empty; switch (item) { case ExceptionItem.Message: itemText = ex.Message; break; case ExceptionItem.StackTrace: if (!string.IsNullOrEmpty(ex.StackTrace)) { itemText = ex.StackTrace; //move the source line to the top const string inTag = " in "; if (itemText.Contains(inTag)) { itemText = itemText.Substring(itemText.LastIndexOf(inTag) + 4) + "\r\n" + itemText.Substring(0, itemText.LastIndexOf(inTag)); } if (format == ExceptionTextFormat.HTML) { itemText = itemText.Replace(" at ", "<br>at "); } } break; case ExceptionItem.Target: if (ex.TargetSite != null && !string.IsNullOrEmpty(ex.TargetSite.Name)) { itemText = ex.TargetSite.Name; } break; case ExceptionItem.Type: itemText = ex.GetType().ToString(); break; } itemText = string.IsNullOrEmpty(itemText) ? "N/A" : itemText; if (format == ExceptionTextFormat.HTML) { itemText = "<ul><li>" + itemText; itemText.Replace("\r\n", "<br>"); int len = itemText.Split(new[] { "<ul>" }, StringSplitOptions.None).Length - 1; for (int i = 0; i < len; i++) { itemText += "</li></ul>"; } } else { itemText = "\t" + itemText.Trim(); itemText = itemText.Replace("\r\n", "\r\n\t\t ".PadRight(tabLevel, '\t')); } return(itemText); }
private static string GetExceptionItem(Exception ex, ExceptionItem item, ExceptionTextFormat format, int tabLevel) { string itemText = string.Empty; switch (item) { case ExceptionItem.Message: itemText = ex.Message; break; case ExceptionItem.StackTrace: if (!string.IsNullOrEmpty(ex.StackTrace)) { itemText = ex.StackTrace; //move the source line to the top const string inTag = " in "; if (itemText.Contains(inTag)) { itemText = itemText.Substring(itemText.LastIndexOf(inTag) + 4) + "\r\n" + itemText.Substring(0, itemText.LastIndexOf(inTag)); } if (format == ExceptionTextFormat.HTML) itemText = itemText.Replace(" at ", "<br>at "); } break; case ExceptionItem.Target: if (ex.TargetSite != null && !string.IsNullOrEmpty(ex.TargetSite.Name)) itemText = ex.TargetSite.Name; break; case ExceptionItem.Type: itemText = ex.GetType().ToString(); break; } itemText = string.IsNullOrEmpty(itemText) ? "N/A" : itemText; if (format == ExceptionTextFormat.HTML) { itemText = "<ul><li>" + itemText; itemText.Replace("\r\n", "<br>"); int len = itemText.Split(new[] {"<ul>"}, StringSplitOptions.None).Length - 1; for (int i = 0; i < len; i++) itemText += "</li></ul>"; } else { itemText = "\t" + itemText.Trim(); itemText = itemText.Replace("\r\n", "\r\n\t\t ".PadRight(tabLevel, '\t')); } return itemText; }