[channel_mapper] Do channel mapping after FinalizeEvent

Before this point, event_record->metric isn't set

Change-Id: Id6018d58d7c744f67835d946a0831d1a67cd94a7
diff --git a/logger/logger.cc b/logger/logger.cc
index ba89831..574aea6 100644
--- a/logger/logger.cc
+++ b/logger/logger.cc
@@ -533,6 +533,11 @@
                         EventRecord* event_record) {
   TRACE_DURATION("cobalt_core", "EventLogger::Log", "metric_id", metric_id);
 
+  auto status = FinalizeEvent(metric_id, expected_metric_type, event_record);
+  if (status != kOK) {
+    return status;
+  }
+
   if (logger_->system_data_) {
     if (logger_->system_data_->release_stage() >
         event_record->metric->meta_data().max_release_stage()) {
@@ -548,11 +553,6 @@
     }
   }
 
-  auto status = FinalizeEvent(metric_id, expected_metric_type, event_record);
-  if (status != kOK) {
-    return status;
-  }
-
   int num_reports = event_record->metric->reports_size();
   int report_index = 0;
   if (event_record->metric->reports_size() == 0) {
diff --git a/logger/logger_test.cc b/logger/logger_test.cc
index a7735f7..72cbaef 100644
--- a/logger/logger_test.cc
+++ b/logger/logger_test.cc
@@ -129,7 +129,7 @@
     internal_logger_.reset(new testing::FakeLogger());
     logger_.reset(new Logger(GetTestProject(registry_base64), encoder_.get(),
                              event_aggregator_.get(), observation_writer_.get(),
-                             internal_logger_.get()));
+                             system_data_.get(), internal_logger_.get()));
     // Create a mock clock which does not increment by default when called.
     // Set the time to 1 year after the start of Unix time so that the start
     // date of any aggregation window falls after the start of time.