日志管理器 / LibXR Logger Manager
More...
#include <logger.hpp>
|
static void | Init () |
| 初始化日志主题 / Initialize the log topic
|
|
static void | Publish (LogLevel level, const char *file, uint32_t line, const char *fmt,...) |
| 发布一条日志 / Publish a log message
|
|
日志管理器 / LibXR Logger Manager
Definition at line 44 of file logger.hpp.
◆ GetColor()
static const char * LibXR::Logger::GetColor |
( |
LogLevel | level | ) |
|
|
inlinestaticprivate |
根据日志级别获取显示颜色 / Get color code based on log level
- Parameters
-
- Returns
- 颜色字符串 / Color string
Definition at line 83 of file logger.hpp.
84 {
85 using namespace LibXR;
86 switch (level)
87 {
98 default:
99 return "";
100 }
101 }
constexpr const char * LIBXR_FONT_STR[]
ANSI escape sequences for font color / ANSI转义序列 - 字体颜色
@ XR_LOG_LEVEL_INFO
一般信息 / Informational message
@ XR_LOG_LEVEL_DEBUG
调试信息 / Debug message
@ XR_LOG_LEVEL_WARN
警告信息 / Warning message
@ XR_LOG_LEVEL_ERROR
错误信息 / Error message
@ XR_LOG_LEVEL_PASS
通过信息 / Pass message
◆ Init()
初始化日志主题 / Initialize the log topic
Definition at line 15 of file logger.cpp.
16{
18
19#if LIBXR_PRINTF_BUFFER_SIZE > 0
20 void (*log_cb_fun)(
bool in_isr,
Topic,
RawData &log_data) =
22 {
23 UNUSED(tp);
24
26
27 if (LIBXR_LOG_OUTPUT_LEVEL >=
static_cast<uint8_t
>(log->level) &&
STDIO::write_ &&
29 {
31 }
32 };
33
36#endif
37
38 initialized_ = true;
39}
static Callback Create(FunType fun, ArgType arg)
static void PrintToTerminal(const LogData &data)
打印日志到终端 / Print log to terminal
原始数据封装类。 A class for encapsulating raw data.
void * addr_
数据存储地址。 The storage address of the data.
static WritePort * write_
Write port instance. 写入端口。
主题(Topic)管理类 / Topic management class
static Topic CreateTopic(const char *name, Domain *domain=nullptr, bool cache=false, bool check_length=true)
创建一个新的主题 Creates a new topic
void RegisterCallback(Callback &cb)
注册回调函数 Registers a callback function
bool Writable()
判断端口是否可写。 Checks whether the port is writable.
日志数据结构体 / Log data structure
◆ LevelToString()
static const char * LibXR::Logger::LevelToString |
( |
LogLevel | level | ) |
|
|
inlinestaticprivate |
将日志级别转换为字符串 / Convert log level to string
- Parameters
-
- Returns
- 日志级别字符串 / Log level string
Definition at line 108 of file logger.hpp.
109 {
110 switch (level)
111 {
113 return "D";
115 return "I";
117 return "P";
119 return "W";
121 return "E";
122 default:
123 return "UNKNOWN";
124 }
125 }
◆ PrintToTerminal()
static void LibXR::Logger::PrintToTerminal |
( |
const LogData & | data | ) |
|
|
inlinestaticprivate |
打印日志到终端 / Print log to terminal
- Parameters
-
Definition at line 69 of file logger.hpp.
70 {
71 const char* color =
GetColor(data.level);
72
74 static_cast<uint32_t>(data.timestamp), data.file, data.line,
76 }
static const char * GetColor(LogLevel level)
根据日志级别获取显示颜色 / Get color code based on log level
static const char * LevelToString(LogLevel level)
将日志级别转换为字符串 / Convert log level to string
static int Printf(const char *fmt,...)
Prints a formatted string to the write port (like printf).
constexpr const char * LIBXR_FORMAT_STR[]
ANSI escape sequences for text format / ANSI转义序列 - 文本格式
◆ Publish()
void Logger::Publish |
( |
LogLevel | level, |
|
|
const char * | file, |
|
|
uint32_t | line, |
|
|
const char * | fmt, |
|
|
| ... ) |
|
static |
发布一条日志 / Publish a log message
- Parameters
-
level | 日志级别 / Log level |
file | 来源文件名 / Source file name |
line | 行号 / Line number |
fmt | 格式化字符串 / Format string |
... | 可变参数 / Variable arguments |
Definition at line 42 of file logger.cpp.
44{
45 if (!initialized_)
46 {
48 }
54
55 va_list args;
56 va_start(args, fmt);
57 auto ans = vsnprintf(data.
message,
sizeof(data.
message), fmt, args);
58 UNUSED(ans);
59 va_end(args);
60
62}
static void Init()
初始化日志主题 / Initialize the log topic
static uint32_t GetTime()
获取当前系统时间(毫秒) Gets the current system time in milliseconds
表示毫秒级时间戳的类。Class representing a timestamp in milliseconds.
void Publish(Data &data)
发布数据 Publishes data
uint32_t line
行号 / Line number
const char * file
文件名指针 / Source file name pointer
LogLevel level
日志级别 / Log level
TimestampMS timestamp
时间戳 / Timestamp
char message[XR_LOG_MESSAGE_MAX_LEN]
日志消息内容 / Log message content
◆ initialized_
std::atomic<uint32_t> LibXR::Logger::initialized_ = false |
|
inlinestaticprivate |
The documentation for this class was generated from the following files: