/// <summary> /// Gets the log file names and dates from the collection of filenames and sorts them into date order /// </summary> /// <param name="filenames">The file names to process</param> /// <returns>A sorted list of log file items</returns> public IEnumerable <LogFileItem> GetDateSortedLogFileDataFromFileNames(IEnumerable <string> filenames) { if (filenames == null) { throw new ArgumentNullException("filenames"); } ; var files = new List <LogFileItem>(); foreach (var filePath in filenames) { string fileName = System.IO.Path.GetFileName(filePath); DateTime logDate = GetLogFileDate(filePath); var logFileItem = new LogFileItem(logDate.Date, filePath) { IsCourier = IsCourierLog(fileName), MachineName = GetMachineName(fileName) }; files.Add(logFileItem); } var sortedFiles = files.OrderByDescending(x => x.Date); return(sortedFiles); }
public void _0003_CreatingNewLog() { var logFileName = DateTime.Now.ToString("yyMMdd HHmmss"); ILogFileItem log = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(log.Path), "Nem hozta létre a log fájlt."); }
private void loglistbox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (loglistbox.SelectedIndex == -1) { return; } LogFileItem log = (LogFileItem)loglistbox.SelectedItem; traveltimelistbox.Visibility = System.Windows.Visibility.Collapsed; VMSlistbox.Visibility = System.Windows.Visibility.Collapsed; Detectorslistbox.Visibility = System.Windows.Visibility.Collapsed; traveltimedetailsbox.Visibility = System.Windows.Visibility.Collapsed; VMSdetailsbox.Visibility = System.Windows.Visibility.Collapsed; Detectorsdetailsbox.Visibility = System.Windows.Visibility.Collapsed; switch (log._type) { case LogFileItemType.TravelTime: showTravelDetails(traveltimedetailsbox, SearchInList(log, traveltimelistbox)); break; case LogFileItemType.VMSG: showVMSDetails(VMSdetailsbox, SearchInList(log, VMSlistbox)); break; case LogFileItemType.DetectorData: showDetectorDetails(Detectorsdetailsbox, SearchInList(log, Detectorslistbox)); break; } }
public void _0010_NewLogFile_Add_LogFileCollection() { var logFileName = "_0007_NewLogFile_Add_LogFileCollection" + Guid.NewGuid().ToString(); var newLog = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(newLog.Path), "Nem hozta létre a log fájlt."); newLog.Messages.AddToStorageBegin(); for (int i = 0; i < 100; i++) { newLog.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Received, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); } newLog.Messages.AddToStorageEnd(); var logFiles = new LogFileCollection(); logFiles.Load(LogLocation, ProjectName); AutoResetEvent completeEvent = new AutoResetEvent(false); logFiles.ListChanged += (o, e) => { if (e.ListChangedType == ListChangedType.ItemAdded) { completeEvent.Set(); } }; logFiles.Add(newLog); Assert.True(completeEvent.WaitOne(1000), "Nem j0tt meg az esény az új logfile beszurásáról."); }
private static void TestIsCorrectFormat(LogFileItem logItem, DateTime expectedDate, string expectedPath, string expectedMachineName) { TestContext.WriteLine("Testing: " + logItem); Assert.That(logItem.Date.Date == expectedDate.Date); Assert.That(Path.GetFileName(logItem.Path) == expectedPath); Assert.That(logItem.MachineName == "helloworld.2016-12-20.2.txt"); }
private void MoveMessageIntoQueue(LogFileItem fi) { try { // move the message into queue StringBuilder sb = fi.Builder; fi.Queue.Enqueue(sb.ToString()); sb.Clear(); } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } }
public void _0009_PropretyTest() { ILogFileCollection logfiles = new LogFileCollection(); logfiles.ProgressChanged += (o, e) => { Console.WriteLine("Percent:" + e.ProgressPercentage + "%" + " Message:" + e.UserState); }; logfiles.Load(LogLocation, ProjectName); var logFileName = DateTime.Now.ToString("yyMMdd HHmmss") + "_0006_PropretyTest_" + Guid.NewGuid().ToString(); ILogFileItem log = null; if (!System.IO.File.Exists(LogLocation + logFileName + ".s3db")) { log = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(log.Path), "Nem hozta létre a log fájlt."); log.Messages.AddToStorageBegin(); for (int i = 0; i < 2; i++) { log.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Transmitted, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); log.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Received, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); } log.Messages.AddToStorageEnd(); } AutoResetEvent completeEvetn = new AutoResetEvent(false); log.Statistics.PropertyChanged += (o, e) => { Assert.True(e.PropertyName == "ReceivedMessageCount" || e.PropertyName == "TransmittedMessageCount"); completeEvetn.Set(); }; var logFile = (logfiles as LogFileCollection).FirstOrDefault(n => n.Name == logFileName); log.Load(); Assert.False(completeEvetn.WaitOne(1000) == false, "Nem jött esemény."); Assert.AreEqual(2, log.Statistics.ReceivedMessageCount); Assert.AreEqual(2, log.Statistics.TransmittedMessageCount); foreach (var item in log.Messages) { Console.WriteLine(item.ToString()); } }
private void PushToQueue(string fileName, string message, int level) { try { if (_disableLogging) { return; } // format the message string formattedMessage = this.FormatContent(message); // put the contents into string buffer lock (_contentLock) { // create the file queue if (!_fileLogItems.ContainsKey(fileName)) { this.InitListenForFile(fileName); } // append the data to buffer LogFileItem fi = _fileLogItems[fileName]; StringBuilder sb = fi.Builder; sb.AppendLine(formattedMessage); // immediate logging if (_immediateLogging) { this.MoveMessageIntoQueue(fi); } else { // move the content to file only if exceeds length if (sb.Length > _logBufferSize) { this.MoveMessageIntoQueue(fi); } } _dtQueued = DateTime.Now; } } catch (Exception ex) { this.WriteExceptionToEventLog(ex); } }
public void _0011_NewLogFileModifyDescription() { var logFileName = "_0008_NewLogFileModifyDescription" + Guid.NewGuid().ToString(); var newLog = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(newLog.Path), "Nem hozta létre a log fájlt."); string expect = "Hello World"; newLog.Info.Description = expect; Assert.AreEqual(expect, newLog.Info.Description); var loadLog = new LogFileItem(newLog.Path); loadLog.Load(); }
public void _0004_Instert_StopWatch() { var logFileName = DateTime.Now.ToString("yyMMdd HHmmss") + "_0003_CreatingNewLog_Insert"; ILogFileItem log = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(log.Path), "Nem hozta létre a log fájlt."); var watch = new Stopwatch(); watch.Start(); log.Messages.AddToStorageBegin(); for (int i = 0; i < 1000; i++) { log.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Received, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); } log.Messages.AddToStorageEnd(); watch.Stop(); Console.WriteLine("Beirás ideje:" + (watch.ElapsedMilliseconds).ToString() + "ms"); }
public void _0007_CreateNew_Insert_1000000_Record() { for (int repeat = 0; repeat < 1; repeat++) { var logFileName = "_" + repeat.ToString("0000") + System.Reflection.MethodBase.GetCurrentMethod().Name; ILogFileItem log = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(log.Path), "Nem hozta létre a log fájlt."); var watch = new Stopwatch(); watch.Start(); log.Messages.AddToStorageBegin(); for (int i = 0; i < 1000000; i++) { log.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Received, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); } log.Messages.AddToStorageEnd(); watch.Stop(); Console.WriteLine("Beirás ideje:" + (watch.ElapsedMilliseconds).ToString() + "ms"); } }
public static List <LogFileItem> ParseLogFile(string path) { List <LogFileItem> result = new List <LogFileItem>(); //in a real scenario, this code should have a lot more error checks string line; StreamReader strRead = new StreamReader(path); while ((line = strRead.ReadLine()) != null) { string[] columns = line.Split('|'); LogFileItem item = new LogFileItem(); item.IpAddress = columns[0]; item.Sysname = columns[1]; item.Username = columns[2]; item.Text = columns[3]; //this assumes that the dateTime column is parsable by .net item.DateTime = DateTime.Parse(columns[4]); result.add(item); } return(result); }
public static List<LogFileItem> ParseLogFile(string path) { List<LogFileItem> result = new List<LogFileItem>(); string line; StreamReader strRead = new StreamReader(path); { int row = 0; while ((line = strRead.ReadLine()) != null) { string[] columns = line.Split('|'); LogFileItem item = new LogFileItem(); item.IpAddress = columns[0]; item.Sysname = columns[1]; item.Username = columns[2]; item.Text = columns[3]; //this assumes that the dateTime column is parsable by .net item.DateTime = DateTime.Parse(columns[4]); } row++; } }
private TunnelListItem SearchInList(LogFileItem logitem, ListBox list) { TunnelListItem tempitem = null; list.Items.Refresh(); foreach (TunnelListItem item in list.Items) { if (logitem._newtime.Ticks == item._newtime.Ticks) { tempitem = item; list.SelectedItem = item; list.ScrollIntoView(item); break; } } if (list.Items.Count > 0) { list.Visibility = System.Windows.Visibility.Visible; } return(tempitem); }
public void _0008_CreateNew_and_Load() { /*Egyedi fáljnév*/ var logFileName = "_0005_CreateNew_and_Load" + Guid.NewGuid().ToString(); ILogFileItem newLog = null; if (!System.IO.File.Exists(LogLocation + logFileName + ".s3db")) { newLog = new LogFileItem(LogLocation, ProjectName, logFileName); Assert.IsTrue(System.IO.File.Exists(newLog.Path), "Nem hozta létre a log fájlt."); newLog.Messages.AddToStorageBegin(); for (int i = 0; i < 1000; i++) { newLog.Messages.AddToStorage("Proba", DateTime.Now, MessageDirection.Received, ArbitrationIdType.Standard, 0x0FF, false, new byte[] { 0x00, 0x01, 0x02, 0x03, 0x05 }, "nincs", "nincs"); } newLog.Messages.AddToStorageEnd(); } var loadedLog = new LogFileItem(newLog.Path); loadedLog.ProgressChanged += (o, e) => { Console.WriteLine("Percent:" + e.ProgressPercentage + "%" + " Message:" + e.UserState); }; loadedLog.Load(); Assert.AreEqual(1000, loadedLog.Messages.Count, "Beirt és várt üzenetek száma nem egyezik."); }
private void CreateDateLogTreeItem(string id, FormDataCollection qs, TreeNodeCollection tree, LogFileItem logFile) { string title = logFile.Date.ToString("yyyy-MM-dd"); string path = HttpUtility.UrlEncode(System.IO.Path.GetFileName(logFile.Path)); tree.Add(CreateTreeNode(path, id, qs, title, "icon-notepad")); }
private void CreateDateLogTreeItem(string id, FormDataCollection qs, TreeNodeCollection tree, LogFileItem logFile) { string title = logFile.Date.ToString("yyyy-MM-dd"); if (!String.IsNullOrEmpty(logFile.MachineName) && !logFile.MachineName.InvariantEquals(Environment.MachineName)) { title += String.Format(" ({0})", logFile.MachineName); } if (logFile.IsCourier) { title += " (C)"; } string path = HttpUtility.UrlEncode(System.IO.Path.GetFileName(logFile.Path)); tree.Add(CreateTreeNode(path, id, qs, title, "icon-notepad")); }