LVGL 日志记录

LVGL 内置有日志模块,用于记录用户库中正在发生的事情。

LVGL日志级别

要启用日志记录,需要在 lv_conf.h 中将 LV_USE_LOG 设置为 1 ,并将 LV_LOG_LEVEL 设置为以下值之一:

  • LV_LOG_LEVEL_TRACE 记录所有信息
  • LV_LOG_LEVEL_INFO 记录重要事件
  • LV_LOG_LEVEL_WARN 记录是否发生了警告事件
  • LV_LOG_LEVEL_ERROR 记录错误信息,当系统可能发生故障时或致命错误
  • LV_LOG_LEVEL_NONE 不要记录任何东西

级别高于设置的日志级别的事件也将被记录。例如。如果使用 LV_LOG_LEVEL_WARN ,也会记录错误。



LVGL使用printf记录

如果您的系统支持printf,则只需在 lv_conf.h 中启用 **LV_LOG_PRINTF **即可发送带有 printf 的日志。

LVGL自定义日志功能

如果不能使用 printf 或想要使用自定义函数进行日志记录,可以使用 lv_log_register_print_cb() 注册 “logger” 回调。

例如:

void my_log_cb(lv_log_level_t level, const char * file, int line, const char * fn_name, const char * dsc)
{
  /*Send the logs via serial port*/
  if(level == LV_LOG_LEVEL_ERROR) serial_send("ERROR: ");
  if(level == LV_LOG_LEVEL_WARN)  serial_send("WARNING: ");
  if(level == LV_LOG_LEVEL_INFO)  serial_send("INFO: ");
  if(level == LV_LOG_LEVEL_TRACE) serial_send("TRACE: ");

  serial_send("File: ");
  serial_send(file);

  char line_str[8];
  sprintf(line_str,"%d", line);
  serial_send("#");
  serial_send(line_str);

  serial_send(": ");
  serial_send(fn_name);
  serial_send(": ");
  serial_send(dsc);
  serial_send("\n");
}

...

lv_log_register_print_cb(my_log_cb);

LVGL添加日志

还可以通过 LV_LOG_TRACE/INFO/WARN/ERROR(description) 函数使用日志模块。

赞(1)
未经允许不得转载:极客笔记 » LVGL 日志记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址