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));