49 CPS::Logger::Level::info);
51 log,
"Stopping real-time data logger. Writing memory to file {}",
54 const auto parent =
mFilename.parent_path();
55 if (!parent.empty()) {
57 std::filesystem::create_directories(parent, ec);
59 throw std::runtime_error(
"Cannot create log directory '" +
60 parent.string() +
"': " + ec.message());
65 std::ofstream(
mFilename, std::ios_base::out | std::ios_base::trunc);
66 if (!mLogFile.is_open()) {
67 throw std::runtime_error(
"Cannot open log file " +
mFilename.string());
70 mLogFile << std::right << std::setw(14) <<
"time";
72 mLogFile <<
", " << std::right << std::setw(13) << it.first;
76 mLogFile << std::scientific << std::right << std::setw(14) << row[0];
77 for (
size_t i = 1; i < row.size(); ++i)
78 mLogFile <<
", " << std::right << std::setw(13) << row[i];
82 SPDLOG_LOGGER_INFO(
log,
"Finished writing real-time data log to file {}",