Enable snappy compression in logger
In doing so, increase the parameterization of logger_test a bit, so up
the shard count.
Change-Id: I9d8d571b4eccc56266c9ba839783f3df9f9c36ab
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/aos/events/logging/logger_main.cc b/aos/events/logging/logger_main.cc
index 083fdb0..4874c77 100644
--- a/aos/events/logging/logger_main.cc
+++ b/aos/events/logging/logger_main.cc
@@ -3,6 +3,7 @@
#include "aos/configuration.h"
#include "aos/events/logging/log_writer.h"
+#include "aos/events/logging/snappy_encoder.h"
#include "aos/events/shm_event_loop.h"
#include "aos/init.h"
#include "aos/logging/log_namer.h"
@@ -15,6 +16,8 @@
"If true, skip renicing the logger. This leaves it lower priority "
"and increases the likelihood of dropping messages and crashing.");
+DEFINE_bool(snappy_compress, false, "If true, compress log data using snappy.");
+
int main(int argc, char *argv[]) {
gflags::SetUsageMessage(
"This program provides a simple logger binary that logs all SHMEM data "
@@ -29,10 +32,16 @@
aos::ShmEventLoop event_loop(&config.message());
- std::unique_ptr<aos::logger::LogNamer> log_namer;
+ std::unique_ptr<aos::logger::MultiNodeLogNamer> log_namer;
log_namer = std::make_unique<aos::logger::MultiNodeLogNamer>(
absl::StrCat(aos::logging::GetLogName("fbs_log"), "/"), &event_loop);
+ if (FLAGS_snappy_compress) {
+ log_namer->set_extension(aos::logger::SnappyDecoder::kExtension);
+ log_namer->set_encoder_factory(
+ []() { return std::make_unique<aos::logger::SnappyEncoder>(); });
+ }
+
aos::logger::Logger logger(&event_loop);
event_loop.OnRun([&log_namer, &logger]() {
if (FLAGS_skip_renicing) {