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.
 }
示例#2
0
        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);
        }
示例#4
0
        /// <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;
        }
示例#5
0
 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());
 }