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