Add ability to write log to abstract log sink
It completely decouples log writing and file system.
Change-Id: Iae3b881826e04500f4862a16c237e0f7c37c9536
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
Signed-off-by: Alexei Strots <alexei.strots@bluerivertech.com>
diff --git a/aos/events/logging/log_namer.cc b/aos/events/logging/log_namer.cc
index 10e08db..4b23268 100644
--- a/aos/events/logging/log_namer.cc
+++ b/aos/events/logging/log_namer.cc
@@ -45,7 +45,7 @@
void NewDataWriter::Rotate() {
// No need to rotate if nothing has been written.
if (header_written_) {
- VLOG(1) << "Rotated " << filename();
+ VLOG(1) << "Rotated " << name();
++parts_index_;
reopen_(this);
header_written_ = false;
@@ -77,7 +77,7 @@
state_[node_index_].boot_uuid = source_node_boot_uuid;
- VLOG(1) << "Rebooted " << filename();
+ VLOG(1) << "Rebooted " << name();
}
void NewDataWriter::UpdateBoot(const UUID &source_node_boot_uuid) {
@@ -101,7 +101,7 @@
// Did the remote boot UUID change?
if (state.boot_uuid != remote_node_boot_uuid) {
- VLOG(1) << filename() << " Remote " << remote_node_index << " updated to "
+ VLOG(1) << name() << " Remote " << remote_node_index << " updated to "
<< remote_node_boot_uuid << " from " << state.boot_uuid;
state.boot_uuid = remote_node_boot_uuid;
state.oldest_remote_monotonic_timestamp = monotonic_clock::max_time;
@@ -124,7 +124,7 @@
if (!reliable) {
if (state.oldest_remote_unreliable_monotonic_timestamp >
monotonic_remote_time) {
- VLOG(1) << filename() << " Remote " << remote_node_index
+ VLOG(1) << name() << " Remote " << remote_node_index
<< " oldest_remote_unreliable_monotonic_timestamp updated from "
<< state.oldest_remote_unreliable_monotonic_timestamp << " to "
<< monotonic_remote_time;
@@ -136,7 +136,7 @@
} else {
if (state.oldest_remote_reliable_monotonic_timestamp >
monotonic_remote_time) {
- VLOG(1) << filename() << " Remote " << remote_node_index
+ VLOG(1) << name() << " Remote " << remote_node_index
<< " oldest_remote_reliable_monotonic_timestamp updated from "
<< state.oldest_remote_reliable_monotonic_timestamp << " to "
<< monotonic_remote_time;
@@ -153,7 +153,7 @@
if (monotonic_event_time <
logger_state.oldest_logger_remote_unreliable_monotonic_timestamp) {
VLOG(1)
- << filename() << " Remote " << node_index_
+ << name() << " Remote " << node_index_
<< " oldest_logger_remote_unreliable_monotonic_timestamp updated "
"from "
<< logger_state.oldest_logger_remote_unreliable_monotonic_timestamp
@@ -169,7 +169,7 @@
// Did any of the timestamps change?
if (state.oldest_remote_monotonic_timestamp > monotonic_remote_time) {
- VLOG(1) << filename() << " Remote " << remote_node_index
+ VLOG(1) << name() << " Remote " << remote_node_index
<< " oldest_remote_monotonic_timestamp updated from "
<< state.oldest_remote_monotonic_timestamp << " to "
<< monotonic_remote_time;
@@ -205,7 +205,7 @@
CHECK_EQ(state_[node_index_].boot_uuid, source_node_boot_uuid);
CHECK(writer);
CHECK(header_written_) << ": Attempting to write message before header to "
- << writer->filename();
+ << writer->name();
writer->CopyMessage(coppier, now);
}
@@ -214,7 +214,7 @@
const size_t logger_node_index = log_namer_->logger_node_index();
const UUID &logger_node_boot_uuid = log_namer_->logger_node_boot_uuid();
if (state_[logger_node_index].boot_uuid == UUID::Zero()) {
- VLOG(1) << filename() << " Logger node is " << logger_node_index
+ VLOG(1) << name() << " Logger node is " << logger_node_index
<< " and uuid is " << logger_node_boot_uuid;
state_[logger_node_index].boot_uuid = logger_node_boot_uuid;
} else {
@@ -227,7 +227,7 @@
void NewDataWriter::QueueHeader(
aos::SizePrefixedFlatbufferDetachedBuffer<LogFileHeader> &&header) {
CHECK(!header_written_) << ": Attempting to write duplicate header to "
- << writer->filename();
+ << writer->name();
CHECK(header.message().has_source_node_boot_uuid());
CHECK_EQ(state_[node_index_].boot_uuid,
UUID::FromString(header.message().source_node_boot_uuid()));
@@ -245,7 +245,7 @@
reopen_(this);
}
- VLOG(1) << "Writing to " << filename() << " "
+ VLOG(1) << "Writing to " << name() << " "
<< aos::FlatbufferToJson(
header, {.multi_line = false, .max_vector_size = 100});
@@ -560,14 +560,14 @@
return result;
}
-MultiNodeLogNamer::MultiNodeLogNamer(
- std::unique_ptr<LogBackend> log_backend, EventLoop *event_loop)
+MultiNodeLogNamer::MultiNodeLogNamer(std::unique_ptr<LogBackend> log_backend,
+ EventLoop *event_loop)
: MultiNodeLogNamer(std::move(log_backend), event_loop->configuration(),
event_loop, event_loop->node()) {}
-MultiNodeLogNamer::MultiNodeLogNamer(
- std::unique_ptr<LogBackend> log_backend,
- const Configuration *configuration, EventLoop *event_loop, const Node *node)
+MultiNodeLogNamer::MultiNodeLogNamer(std::unique_ptr<LogBackend> log_backend,
+ const Configuration *configuration,
+ EventLoop *event_loop, const Node *node)
: LogNamer(configuration, event_loop, node),
log_backend_(std::move(log_backend)),
encoder_factory_([](size_t max_message_size) {
@@ -826,7 +826,6 @@
return;
}
DetachedBufferWriter *const writer = writer_pointer->get();
- const bool was_open = writer->is_open();
writer->Close();
const auto *stats = writer->WriteStatistics();
@@ -844,11 +843,6 @@
ran_out_of_space_ = true;
writer->acknowledge_out_of_space();
}
-
- if (!was_open) {
- CHECK(access(std::string(writer->filename()).c_str(), F_OK) == -1)
- << ": File should not exist: " << writer->filename();
- }
}
} // namespace logger