Gentle introduction of log backend

The goal is to be able to write short logs to the pre-allocated
memory. To do that, we want to decouple file operations from logs
behind light abstraction.

There are a couple of TODO added. I hope to fix them with next iteration
where actual memory log backend will be implemented.

Change-Id: I65e80825b1e080375efc54f35b270df1ceb17a0d
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/aos/events/logging/logger_test.cc b/aos/events/logging/logger_test.cc
index 80b3a4a..fcbd77b 100644
--- a/aos/events/logging/logger_test.cc
+++ b/aos/events/logging/logger_test.cc
@@ -1,5 +1,7 @@
 #include <sys/stat.h>
 
+#include <filesystem>
+
 #include "absl/strings/str_format.h"
 #include "aos/events/event_loop.h"
 #include "aos/events/logging/log_reader.h"
@@ -88,6 +90,8 @@
     event_loop_factory_.RunFor(chrono::milliseconds(20000));
   }
 
+  ASSERT_TRUE(std::filesystem::exists(logfile));
+
   // Even though it doesn't make any difference here, exercise the logic for
   // passing in a separate config.
   LogReader reader(logfile, &config_.message());
@@ -152,16 +156,16 @@
 
     Logger logger(logger_event_loop.get());
     logger.set_polling_period(std::chrono::milliseconds(100));
-    logger_event_loop->OnRun(
-        [base_name1, base_name2, &logger_event_loop, &logger]() {
-          logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
-              base_name1, logger_event_loop->configuration(),
-              logger_event_loop.get(), logger_event_loop->node()));
-          EXPECT_DEATH(logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
-                           base_name2, logger_event_loop->configuration(),
-                           logger_event_loop.get(), logger_event_loop->node())),
-                       "Already logging");
-        });
+    logger_event_loop->OnRun([base_name1, base_name2, &logger_event_loop,
+                              &logger]() {
+      logger.StartLogging(std::make_unique<MultiNodeFilesLogNamer>(
+          base_name1, logger_event_loop->configuration(),
+          logger_event_loop.get(), logger_event_loop->node()));
+      EXPECT_DEATH(logger.StartLogging(std::make_unique<MultiNodeFilesLogNamer>(
+                       base_name2, logger_event_loop->configuration(),
+                       logger_event_loop.get(), logger_event_loop->node())),
+                   "Already logging");
+    });
     event_loop_factory_.RunFor(chrono::milliseconds(20000));
   }
 }
@@ -229,7 +233,7 @@
     logger.set_separate_config(false);
     logger.set_polling_period(std::chrono::milliseconds(100));
     logger_event_loop->OnRun([base_name, &logger_event_loop, &logger]() {
-      logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+      logger.StartLogging(std::make_unique<MultiNodeFilesLogNamer>(
           base_name, logger_event_loop->configuration(),
           logger_event_loop.get(), logger_event_loop->node()));
       logger.StopLogging(aos::monotonic_clock::min_time);
@@ -267,13 +271,13 @@
     Logger logger(logger_event_loop.get());
     logger.set_separate_config(false);
     logger.set_polling_period(std::chrono::milliseconds(100));
-    logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+    logger.StartLogging(std::make_unique<MultiNodeFilesLogNamer>(
         base_name1, logger_event_loop->configuration(), logger_event_loop.get(),
         logger_event_loop->node()));
     event_loop_factory_.RunFor(chrono::milliseconds(10000));
     logger.StopLogging(logger_event_loop->monotonic_now());
     event_loop_factory_.RunFor(chrono::milliseconds(10000));
-    logger.StartLogging(std::make_unique<MultiNodeLogNamer>(
+    logger.StartLogging(std::make_unique<MultiNodeFilesLogNamer>(
         base_name2, logger_event_loop->configuration(), logger_event_loop.get(),
         logger_event_loop->node()));
     event_loop_factory_.RunFor(chrono::milliseconds(10000));