private static void LogError(Exception ex, ErrorLevels errorLevel) { // Append to the error-log file using StreamWriter. using (StreamWriter streamWriter = File.AppendText(Constants.FILEPATH_DATA + "Errors.log")) { // Write our error details to the log file. streamWriter.WriteLine("[{0}] - Error Level: {1}, Error Message: {2} at {3}", DateTime.Now.ToString("M/d/yyyy"), errorLevel.ToString(), ex.Message, ex.StackTrace); } // -Using- automatically cleans up the IO for us. }
public void Log(string source, string message, string data, string stackTrace, string targetSite, ErrorLevels errorLevel, string customMessage) { ErrorEdm edm = new ErrorEdm(); ErrorLog log = new ErrorLog { Source = source, Message = message, Data = data, StackTrace = stackTrace, TargetSite = targetSite, ErrorLevel = errorLevel.ToString(), ErrorDate = DateTime.Now, CustomMessage = customMessage }; edm.AddObject("ErrorLogs", log); edm.SaveChanges(); }
/// <summary> /// Returns a filtered list of XML entries sorted in descending order. /// </summary> /// <param name="errorLevel">The specific error level to return</param> /// <param name="count">Max number of items to return</param> /// <param name="dateFrom">From Date</param> /// <param name="dateTo">To Date</param> /// <param name="fieldList">"*" or any of the fields you want returned - currently not supported</param> /// <returns></returns> public System.Data.IDataReader GetEntries(ErrorLevels errorLevel, int count, DateTime?dateFrom, DateTime?dateTo, string fieldList) { if (dateFrom == null) { dateFrom = DateTime.Now.Date.AddDays(-2); } if (dateTo == null) { dateTo = DateTime.Now.Date.AddDays(1); } XElement doc = XElement.Load(LogFilename); var res = doc.Descendants("LogEntry"); string elevel = errorLevel.ToString(); if (errorLevel != ErrorLevels.All) { res = res.Where(el => (string)el.Element("ErrorLevel") == elevel); } res = res.Take(count) .OrderByDescending(el => (DateTime)el.Element("Entered")); DataTable dt = CreateEntryDataTable(); foreach (XElement node in res) { DataRow row = dt.NewRow(); UpdateDataRowFromElement(node, row); row["RequestDuration"] = (decimal)node.Element("RequestDuration"); dt.Rows.Add(row); } DataTableReader reader = new DataTableReader(dt); return(reader); }
/// <summary> /// Returns a filtered list of XML entries sorted in descending order. /// </summary> /// <param name="errorLevel">The specific error level to return</param> /// <param name="count">Max number of items to return</param> /// <param name="dateFrom">From Date</param> /// <param name="dateTo">To Date</param> /// <param name="fieldList">"*" or any of the fields you want returned - currently not supported</param> /// <returns></returns> public System.Data.IDataReader GetEntries(ErrorLevels errorLevel, int count, DateTime? dateFrom, DateTime? dateTo, string fieldList) { if (dateFrom == null) dateFrom = DateTime.Now.Date.AddDays(-2); if (dateTo == null) dateTo = DateTime.Now.Date.AddDays(1); XElement doc = XElement.Load(LogFilename); var res = doc.Descendants("LogEntry"); string elevel = errorLevel.ToString(); if (errorLevel != ErrorLevels.All ) res = res.Where(el => (string)el.Element("ErrorLevel") == elevel ); res = res.Take(count) .OrderByDescending(el => (DateTime) el.Element("Entered") ); DataTable dt = CreateEntryDataTable(); foreach (XElement node in res) { DataRow row = dt.NewRow(); UpdateDataRowFromElement(node, row); row["RequestDuration"] = (decimal)node.Element("RequestDuration"); dt.Rows.Add(row); } DataTableReader reader = new DataTableReader(dt); return reader; }
internal static void AddLog(string message, ErrorLevels errorLevel = ErrorLevels.Information) { Console.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString() + " - " + errorLevel + " - " + message); DatabaseInterface.SaveLogMessageToDatabase(message, errorLevel.ToString()); }