使用ESP32-IDF开发时,最简单的方法就是使用printf();函数输出调试信息,但是IDF给了我们更优秀的信息调试装置,库中有以下五种LOG输出函数,详细度从最低到最高。

ESP_LOGE - 错误(最低)
ESP_LOGW - 警告
ESP_LOGI - 信息
ESP_LOGD - 调试
ESP_LOGV - 详细(最高)

  考虑到线程安全,在FREERTOS中尽量使用ESP_LOGx来输出调试信息和打印消息。
在编译时:在menuconfig中,使用选项设置详细程度CONFIG_LOG_DEFAULT_LEVEL。详细程度高于的所有日志记录语句CONFIG_LOG_DEFAULT_LEVEL 将被预处理器删除。

在运行时:详细级别低于的所有日志CONFIG_LOG_DEFAULT_LEVEL默认情况下启用。该功能esp_log_level_set()可用于按模块设置日志记录级别。模块由其标签标识,这些标签是可读的ASCII零终止字符串。
如果想使用所有级别的输出日志,在头文件前面定义:

#define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE
#include <esp_log.h>

  在代码中用五种级别输出信息:

ESP_LOGI(TAG, "Hello Bug! ^_^ %d", 1);
ESP_LOGE(TAG, "Hello Bug! ^_^ %d", 2);
ESP_LOGW(TAG, "Hello Bug! ^_^ %d", 3);
ESP_LOGD(TAG, "Hello Bug! ^_^ %d", 4);
ESP_LOGV(TAG, "Hello Bug! ^_^ %d", 5);

  效果如下图所示:
log_output.png