private void RunMethod() { if (!Directory.Exists(PreferenceManager.Manager.Preferences.System.LogFilePath)) { throw new Exception("Directory does not exist"); } // Clear raw file if (File.Exists(_rawFilename)) { File.Delete(_rawFilename); } using (FileStream fs = File.Create(_rawFilename)) { while (_isLogging) { while (!_dataLog.Empty()) { DataPacket packet = _dataLog.Dequeue(); if (packet == null) { continue; } // Write raw as backup byte[] raw = FormatRaw.ToRaw(packet.Bytes); fs.Write(raw, 0, raw.Length); } Thread.Sleep(5); } } // Clear pretty file if (File.Exists(_prettyFilename)) { File.Delete(_prettyFilename); } using (StreamWriter sw = new StreamWriter(_prettyFilename)) { string header = FormatPretty.PrettyHeader(_dataLog.GetCurrentSession().Mapping.Loggables()); sw.WriteLine(header); byte[] fileBytes = File.ReadAllBytes(_rawFilename); byte[][] frames = FormatRaw.FromRaw(fileBytes); Session sessionCopy = _dataLog.GetCurrentSession(); foreach (byte[] frame in frames) { sessionCopy.UpdateComponents(frame); // Write pretty string pretty = FormatPretty.PrettyLine(sessionCopy.SystemTime, sessionCopy.Mapping.Loggables()); //string pretty = FormatWriter.PrettyLine(stopWatch.ElapsedMilliseconds, packet.Bytes, _dataLog.GetCurrentSession().Mapping.Loggables()); sw.WriteLine(pretty); } } // Write preferences to log using (StreamWriter sw = new StreamWriter(_settingsFilename, false)) { string text = JsonConvert.SerializeObject(PreferenceManager.Manager.Preferences); sw.Write(text); } }