20#include "absl/strings/str_cat.h"
22using ::apollo::cyber::Time;
28MonitorLogger::MonitorLogger() {
29 const std::string node_name =
30 absl::StrCat(
"monitor_logger",
Time::Now().ToNanosecond());
32 if (node_ !=
nullptr) {
34 node_->CreateWriter<MonitorMessage>(
"/apollo/monitor");
39 const std::vector<MessageItem> &messages)
const {
41 if (messages.empty()) {
46 for (
const auto &msg_item : messages) {
48 monitor_msg_item->set_source(source);
49 monitor_msg_item->set_log_level(msg_item.first);
50 monitor_msg_item->set_msg(msg_item.second);
54 DoPublish(&monitor_msg);
59 common::util::FillHeader(
"monitor", message);
60 monitor_msg_writer_->Write(*message);
virtual void Publish(const MonitorMessageItem::MessageSource &source, const std::vector< MessageItem > &messages) const
Publish the messages.
static Time Now()
get the current time.
#define RETURN_IF_NULL(ptr)
The class of MonitorLogger
std::unique_ptr< Node > CreateNode(const std::string &node_name, const std::string &name_space)