DeviceLogger.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <spdlog/spdlog.h>
4 
5 namespace dai {
6 
7 class DeviceLogger : public spdlog::logger {
8  using spdlog::logger::logger;
9 
10 public:
11  void logMessage(const LogMessage& msg){
12  // Convert LogMessage to spdlog::details::log_msg
13  spdlog::details::log_msg log;
14 
15  // First get spdlogLevel
16  spdlog::level::level_enum spdlogLevel = spdlog::level::warn;
17  switch (msg.level) {
18  case dai::LogLevel::TRACE: spdlogLevel = spdlog::level::trace; break;
19  case dai::LogLevel::DEBUG: spdlogLevel = spdlog::level::debug; break;
20  case dai::LogLevel::INFO: spdlogLevel = spdlog::level::info; break;
21  case dai::LogLevel::WARN: spdlogLevel = spdlog::level::warn; break;
22  case dai::LogLevel::ERR: spdlogLevel = spdlog::level::err; break;
23  case dai::LogLevel::CRITICAL: spdlogLevel = spdlog::level::critical; break;
24  case dai::LogLevel::OFF: spdlogLevel = spdlog::level::off; break;
25  }
26  // level
27  log.level = spdlogLevel;
28 
29  // mimics regular "log" method
30  bool logEnabled = should_log(log.level);
31  bool tracebackEnabled = tracer_.enabled();
32  if (!logEnabled && !tracebackEnabled) {
33  return;
34  }
35 
36 
37  // Continue with other fields
38  // logger name
39  log.logger_name = msg.nodeIdName;
40 
41  // time
42  log.time = std::chrono::time_point<spdlog::log_clock, typename spdlog::log_clock::duration>(std::chrono::duration_cast<typename spdlog::log_clock::duration>(std::chrono::seconds(msg.time.sec) + std::chrono::nanoseconds(msg.time.nsec)));
43 
44  // color
45  log.color_range_start = msg.colorRangeStart;
46  log.color_range_end = msg.colorRangeEnd;
47 
48  // actual log message
49  log.payload = msg.payload;
50 
51  // Call the internal log_it_ method
52  log_it_(log, logEnabled, tracebackEnabled);
53 
54  }
55 
56 };
57 
58 } // namespace dai
dai::LogLevel::TRACE
@ TRACE
dai::LogMessage::nodeIdName
std::string nodeIdName
Definition: LogMessage.hpp:14
dai::logger::critical
void critical(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:96
dai::logger::info
void info(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:78
dai::LogMessage::colorRangeEnd
size_t colorRangeEnd
Definition: LogMessage.hpp:18
dai::LogLevel::INFO
@ INFO
dai::logger::debug
void debug(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:72
dai::logger::warn
void warn(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:84
dai::logger::log
void log(spdlog::source_loc source, spdlog::level::level_enum lvl, const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:54
dai::DeviceLogger
Definition: DeviceLogger.hpp:7
dai::LogLevel::CRITICAL
@ CRITICAL
dai::LogMessage::colorRangeStart
size_t colorRangeStart
Definition: LogMessage.hpp:17
dai::LogMessage::payload
std::string payload
Definition: LogMessage.hpp:19
dai::LogMessage::time
Timestamp time
Definition: LogMessage.hpp:16
dai::LogMessage
Definition: LogMessage.hpp:13
dai::LogLevel::OFF
@ OFF
dai::LogLevel::WARN
@ WARN
dai::Timestamp::nsec
int64_t nsec
Definition: Timestamp.hpp:13
dai::LogLevel::ERR
@ ERR
dai::logger::trace
void trace(const FormatString &fmt, Args &&...args)
Definition: Logging.hpp:66
dai::LogMessage::level
LogLevel level
Definition: LogMessage.hpp:15
dai::DeviceLogger::logMessage
void logMessage(const LogMessage &msg)
Definition: DeviceLogger.hpp:11
dai::Timestamp::sec
int64_t sec
Definition: Timestamp.hpp:13
dai::LogLevel::DEBUG
@ DEBUG
dai
Definition: CameraExposureOffset.hpp:6


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19