pub fn format_log_entry(entry: &LogEntry) -> StringExpand description
格式化日志条目为字符串(带 ANSI 颜色和上下文信息)
将 LogEntry 格式化为用户可读的字符串,用于 syslog 系统调用等场景。 包含 ANSI 颜色代码、时间戳、CPU ID、任务 ID 等上下文信息。
注意:此函数使用堆分配(alloc::format!),仅在堆分配器初始化后可用。
主要用于 syslog 系统调用等运行时场景。早期启动时的控制台输出使用
direct_print_entry 方法,该方法不依赖堆分配。
重要:此函数的格式化逻辑必须与 direct_print_entry 和 buffer::calculate_formatted_length 保持一致。
如果修改了日志输出格式,需要同步更新三处:
direct_print_entry- 用于早期启动的控制台输出(无堆分配)format_log_entry(此函数) - 用于 syslog 系统调用(使用堆分配)buffer::calculate_formatted_length- 用于精确字节计数
§格式
<color_code>[LEVEL] [timestamp] [CPU<id>/T<tid>] message<reset>§示例
\x1b[37m[INFO] [ 123456] [CPU0/T 1] Kernel initialized\x1b[0m
\x1b[31m[ERR] [ 789012] [CPU0/T 5] Failed to mount /dev/sda1\x1b[0m§参数
entry- 要格式化的日志条目
§返回值
格式化后的字符串(包含 ANSI 颜色代码和上下文信息)