blob: 5ec7d3dffeda1fe8cde8f7df5249ce84e74bf3d0 [file] [log] [blame]
Tyler Chatow67ddb032020-01-12 14:30:04 -08001#include "aos/events/aos_logging.h"
2
3namespace aos {
4
Austin Schuhad9e5eb2021-11-19 20:33:55 -08005void AosLogToFbs::Initialize(const std::string *name,
6 Sender<logging::LogMessageFbs> log_sender) {
Tyler Chatow67ddb032020-01-12 14:30:04 -08007 log_sender_ = std::move(log_sender);
8 if (log_sender_) {
Austin Schuha0c41ba2020-09-10 22:59:14 -07009 implementation_ = std::make_shared<logging::CallbackLogImplementation>(
Tyler Chatow67ddb032020-01-12 14:30:04 -080010 [this](const logging::LogMessage &message_data) {
11 aos::Sender<logging::LogMessageFbs>::Builder message =
12 log_sender_.MakeBuilder();
13 auto message_str = message.fbb()->CreateString(
14 message_data.message, message_data.message_length);
15 auto name_str = message.fbb()->CreateString(message_data.name,
16 message_data.name_length);
17
18 ::aos::logging::LogMessageFbs::Builder builder =
19 message.MakeBuilder<::aos::logging::LogMessageFbs>();
20 builder.add_message(message_str);
21 builder.add_level(
22 static_cast<::aos::logging::Level>(message_data.level));
Het Satasiya30b45aa2020-09-12 16:45:46 -070023 builder.add_source_pid(message_data.source);
Tyler Chatow67ddb032020-01-12 14:30:04 -080024 builder.add_name(name_str);
milind1f1dca32021-07-03 13:50:07 -070025 if (send_failure_counter_.failures() > 0) {
26 builder.add_send_failures(send_failure_counter_.failures());
27 }
Tyler Chatow67ddb032020-01-12 14:30:04 -080028
milind1f1dca32021-07-03 13:50:07 -070029 send_failure_counter_.Count(message.Send(builder.Finish()));
Austin Schuhad9e5eb2021-11-19 20:33:55 -080030 },
31 name);
Tyler Chatow67ddb032020-01-12 14:30:04 -080032 }
33}
34
35} // namespace aos