M module-sys/SystemManager/SystemManager.cpp => module-sys/SystemManager/SystemManager.cpp +0 -1
@@ 94,7 94,6 @@ namespace sys
void SystemManager::StartSystem(InitFunction init)
{
- LOG_FATAL("Initializing system...");
powerManager = std::make_unique<PowerManager>();
// Switch system to full functionality(clocks and power domains configured to max values)
M module-utils/board/linux/log.cpp => module-utils/board/linux/log.cpp +13 -1
@@ 6,6 6,8 @@
#include <string>
#include <mutex>
#include <ticks.hpp>
+#include <fstream>
+#include <string_view>
#define LOGGER_BUFFER_SIZE 4096
@@ 38,6 40,7 @@ struct Logger
{
Logger(logger_level level = LOGTRACE) : level{level}
{}
+
std::mutex lock;
logger_level level;
};
@@ 45,6 48,13 @@ struct Logger
static Logger logger;
static char loggerBuffer[LOGGER_BUFFER_SIZE] = {0};
+void dumpToFile(std::string_view log, size_t length)
+{
+ static std::fstream logFile(logFileName, std::fstream::out);
+ logFile.write(log.data(), length);
+ logFile.flush();
+}
+
void log_Printf(const char *fmt, ...)
{
/* Acquire lock */
@@ 54,10 64,11 @@ void log_Printf(const char *fmt, ...)
va_list args;
va_start(args, fmt);
- vsnprintf(ptr, LOGGER_BUFFER_SIZE - 1, fmt, args);
+ ptr += vsnprintf(ptr, LOGGER_BUFFER_SIZE - 1, fmt, args);
va_end(args);
std::cout << loggerBuffer;
+ dumpToFile(loggerBuffer, ptr - loggerBuffer);
}
static void _log_Log(
@@ 92,6 103,7 @@ static void _log_Log(
ptr += snprintf(ptr, &loggerBuffer[LOGGER_BUFFER_SIZE] - ptr, "\n");
std::cout << loggerBuffer;
+ dumpToFile(loggerBuffer, ptr - loggerBuffer);
}
__attribute__((weak)) void log_Log(
M module-utils/log/log.hpp => module-utils/log/log.hpp +5 -0
@@ 82,4 82,9 @@ extern "C"
}
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-variable"
+static const char *logFileName = "MuditaOS.log";
+#pragma GCC diagnostic pop
+
#endif /* LOG_LOG_H_ */
M source/main.cpp => source/main.cpp +2 -3
@@ 66,9 66,6 @@ int main()
bsp::BoardInit();
- LOG_PRINTF("Launching PurePhone \n");
- LOG_PRINTF("commit: %s tag: %s branch: %s\n", GIT_REV, GIT_TAG, GIT_BRANCH);
-
auto sysmgr = std::make_shared<sys::SystemManager>(5000);
sysmgr->StartSystem([sysmgr]() {
@@ 159,6 156,8 @@ int main()
return ret;
});
+ LOG_PRINTF("Launching PurePhone \n");
+ LOG_PRINTF("commit: %s tag: %s branch: %s\n", GIT_REV, GIT_TAG, GIT_BRANCH);
cpp_freertos::Thread::StartScheduler();