Merge "Rotate image logger every minute"
diff --git a/aos/events/logging/logger_main.cc b/aos/events/logging/logger_main.cc
index aa6f25b..b56f977 100644
--- a/aos/events/logging/logger_main.cc
+++ b/aos/events/logging/logger_main.cc
@@ -18,6 +18,9 @@
DEFINE_bool(snappy_compress, false, "If true, compress log data using snappy.");
+DEFINE_double(rotate_every, 0.0,
+ "If set, rotate the logger after this many seconds");
+
int main(int argc, char *argv[]) {
gflags::SetUsageMessage(
"This program provides a simple logger binary that logs all SHMEM data "
@@ -43,6 +46,20 @@
}
aos::logger::Logger logger(&event_loop);
+
+ if (FLAGS_rotate_every != 0.0) {
+ aos::monotonic_clock::time_point last_rotation_time =
+ event_loop.monotonic_now();
+ logger.set_on_logged_period([&] {
+ const auto now = event_loop.monotonic_now();
+ if (now > last_rotation_time +
+ std::chrono::duration<double>(FLAGS_rotate_every)) {
+ logger.Rotate();
+ last_rotation_time = now;
+ }
+ });
+ }
+
event_loop.OnRun([&log_namer, &logger]() {
if (FLAGS_skip_renicing) {
LOG(WARNING) << "Ignoring request to renice to -20 due to "
diff --git a/y2022/y2022_logger.json b/y2022/y2022_logger.json
index b72abeb..235636f 100644
--- a/y2022/y2022_logger.json
+++ b/y2022/y2022_logger.json
@@ -417,7 +417,7 @@
{
"name": "image_logger",
"executable_name": "logger_main",
- "args": ["--snappy_compress", "--logging_folder", "", "--snappy_compress"],
+ "args": ["--snappy_compress", "--logging_folder", "", "--snappy_compress", "--rotate_every", "60.0"],
"nodes": [
"logger"
]