taltalpのアイコン画像
taltalp 2020年08月18日作成
セットアップや使用方法 セットアップや使用方法 閲覧数 4276
taltalp 2020年08月18日作成 セットアップや使用方法 セットアップや使用方法 閲覧数 4276

ESP Logging Library

ArduinoでESPを開発するときに、デバッグログのレベル付けと、レベルに応じて表示/非表示を切り替える方法についてのメモです。

使用するライブラリ

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/log.html

サンプルコード

#include "esp_log.h" static const char *TAG = "main"; void setup() { Serial.begin(115200); /* // ESP-IDFでEnable log set levelを有効にすると使える esp_log_level_set("*", ESP_LOG_ERROR); esp_log_level_set("BLE", ESP_LOG_INFO); // 特定のタグのものだけINFOにする */ // ログのレベル付けができる & タグ付けができる ESP_LOGE(TAG, "Logging Level Error"); ESP_LOGW(TAG, "Logging Level Warn"); ESP_LOGI(TAG, "Logging Level Info"); ESP_LOGD(TAG, "Logging Level Debug"); ESP_LOGV(TAG, "Logging Level Verbose"); // 書式指定もできる String str = "Hello"; int i = 123; float f = 456.789; ESP_LOGV(TAG, "%s, %d, %3.2f", str, i, f); // std::stringの場合 std::string std_str = "Hello std"; ESP_LOGV(TAG, "%s", std_str.c_str()); } void loop() { }

Arduino IDEの設定

「ツール→Core Debug Level」を任意のレベルに設定する

キャプションを入力できます

実行結果

[E][sketch_aug18a.ino:9] setup(): Logging Level Error [W][sketch_aug18a.ino:10] setup(): Logging Level Warn [I][sketch_aug18a.ino:11] setup(): Logging Level Info [D][sketch_aug18a.ino:12] setup(): Logging Level Debug [V][sketch_aug18a.ino:13] setup(): Logging Level Verbose [V][sketch_aug18a.ino:18] setup(): Hello, 123, 456.79 [V][sketch_aug18a.ino:21] setup(): Hello std

Platform IOの場合

platform.inibuild_flags = -DCORE_DEBUG_LEVEL=Xを追記する。レベルは下記の通り。

; Error build_flags = -DCORE_DEBUG_LEVEL=1 ; Warn build_flags = -DCORE_DEBUG_LEVEL=2 ; Info build_flags = -DCORE_DEBUG_LEVEL=3 ; Debug build_flags = -DCORE_DEBUG_LEVEL=4 ; Verbose build_flags = -DCORE_DEBUG_LEVEL=5

その他

ESPで使われるライブラリのソースコードをみてみると、ESP_LOGX()は頻繁に使われているようです。
esp_log_level_set("TAG_NAME", ESP_LOG_ERROR);のようにTAGの名前を指定することで、特定のログのみを抽出することが可能なようです。
しかし、esp_log_level_setを実行するためにはESP_IDFでEnable log set levelを有効にしなければいけないようです。(未確認)
これについては今後試すことがあれば追記したいと思います。

2
4
taltalpのアイコン画像
アナログ回路分野を学んでいる博士課程の学生です。ADCの研究をしています。 twitter: @taltalpp
  • taltalp さんが 2020/08/18 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する