日志记录

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_USER 仅记录用户消息

  • LV_LOG_LEVEL_NONE 不记录任何内容

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

打印日志

使用 printf 记录日志

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

自定义日志函数

如果您无法使用 printf 或希望使用自定义函数记录日志,可以通过 lv_log_register_print_cb() 注册一个“日志记录器”回调。

例如:

void my_log_cb(const char * buf)
{
  serial_send(buf, strlen(buf));
}

...

lv_log_register_print_cb(my_log_cb);

添加日志

您还可以通过 LV_LOG_TRACE/INFO/WARN/ERROR/USER(text)LV_LOG(text) 函数使用日志模块。其中:

  • LV_LOG_TRACE/INFO/WARN/ERROR/USER(text) 会在您的 text 后附加以下信息:

    • 日志级别

    • __FILE__

    • __LINE__

    • __func__

  • LV_LOG(text) 类似于 LV_LOG_USER,但没有附加额外信息。