diff --git a/aos/events/logging/log_writer.cc b/aos/events/logging/log_writer.cc
index e5c996a..6f99c7b 100644
--- a/aos/events/logging/log_writer.cc
+++ b/aos/events/logging/log_writer.cc
@@ -169,7 +169,7 @@
 }
 
 void Logger::StartLogging(std::unique_ptr<LogNamer> log_namer,
-                          std::string_view log_start_uuid) {
+                          std::optional<UUID> log_start_uuid) {
   CHECK(!log_namer_) << ": Already logging";
   log_namer_ = std::move(log_namer);
 
@@ -287,7 +287,7 @@
   node_state_.clear();
 
   log_event_uuid_ = UUID::Zero();
-  log_start_uuid_ = std::string();
+  log_start_uuid_ = std::nullopt;
 
   return std::move(log_namer_);
 }
@@ -509,8 +509,8 @@
       logger_instance_uuid_.PackString(&fbb);
 
   flatbuffers::Offset<flatbuffers::String> log_start_uuid_offset;
-  if (!log_start_uuid_.empty()) {
-    log_start_uuid_offset = fbb.CreateString(log_start_uuid_);
+  if (log_start_uuid_) {
+    log_start_uuid_offset = fbb.CreateString(log_start_uuid_->ToString());
   }
 
   flatbuffers::Offset<flatbuffers::String> config_sha256_offset;
diff --git a/aos/events/logging/log_writer.h b/aos/events/logging/log_writer.h
index 4f85eb6..8e8e3ef 100644
--- a/aos/events/logging/log_writer.h
+++ b/aos/events/logging/log_writer.h
@@ -64,7 +64,7 @@
   }
   std::chrono::nanoseconds polling_period() const { return polling_period_; }
 
-  std::string_view log_start_uuid() const { return log_start_uuid_; }
+  std::optional<UUID> log_start_uuid() const { return log_start_uuid_; }
   UUID logger_instance_uuid() const { return logger_instance_uuid_; }
 
   // The maximum time for a single fetch which returned a message, or 0 if none
@@ -126,7 +126,7 @@
   // multiple nodes. The default (empty string) indicates there isn't one
   // available.
   void StartLogging(std::unique_ptr<LogNamer> log_namer,
-                    std::string_view log_start_uuid = "");
+                    std::optional<UUID> log_start_uuid = std::nullopt);
 
   // Stops logging. Ensures any messages through end_time make it into the log.
   //
@@ -276,7 +276,7 @@
   const UUID logger_instance_uuid_ = UUID::Random();
   std::unique_ptr<LogNamer> log_namer_;
   // Empty indicates there isn't one.
-  std::string log_start_uuid_;
+  std::optional<UUID> log_start_uuid_;
 
   // Name to save in the log file.  Defaults to hostname.
   std::string name_;
