//TODO: If spinLoad or spinSave fails, better behaviour could be implemented
        public bool write(EventLogger.logEntry writeString)
        {
            XmlDocument docConfig = new XmlDocument();

            if (!spinLoad(docConfig))
            {
                Console.WriteLine("Log locked for 2 seconds");
                return(false);
            }

            XmlNode root = docConfig.SelectSingleNode("/log");

            XmlElement newEntry = docConfig.CreateElement("Entry");

            newEntry.SetAttribute("Date_And_Time", writeString.dt.ToString());
            newEntry.InnerText = writeString.logText;

            root.AppendChild(newEntry);

            if (!spinSave(docConfig))
            {
                Console.WriteLine("Log locked for 2 seconds");
                return(false);
            }

            return(true);
        }
        public List <EventLogger.logEntry> read()
        {
            List <EventLogger.logEntry> entries = new List <EventLogger.logEntry>();

            if (!File.Exists(logPath + FILE_ENDING))
            {
                return(entries);
            }

            XmlDocument docConfig = new XmlDocument();

            docConfig.Load(logPath + FILE_ENDING);
            XmlNode root = docConfig.SelectSingleNode("/log");


            foreach (XmlNode entry in root.ChildNodes)
            {
                EventLogger.logEntry lEntry = new EventLogger.logEntry();

                lEntry.dt      = DateTime.Parse(entry.Attributes[0].Value);
                lEntry.logText = entry.Value;

                entries.Add(lEntry);
            }

            return(entries);
        }
Esempio n. 3
0
        public void doWork()
        {
            EventLogger.logEntry dequeued = new EventLogger.logEntry();

            while (eventQueue.Count() > 0)
            {
                eventQueue.TryDequeue(out dequeued);
                format.write(dequeued);
            }
        }
        public EventLogger.logEntry readSpecifiedEntry(int nr)
        {
            XmlDocument docConfig = new XmlDocument();

            docConfig.Load(logPath + FILE_ENDING);
            XmlNode root = docConfig.SelectSingleNode("/log");

            //if(root.ChildNodes.Count < nr - 1)
            //{
            //    return null;
            //}

            XmlNode lookedFor = root.ChildNodes[nr - 1];

            EventLogger.logEntry entry = new EventLogger.logEntry();

            entry.dt      = DateTime.Parse(lookedFor.Attributes[0].Value);
            entry.logText = lookedFor.Value;

            return(entry);
        }