Espressif IDF – Lognachrichten

Last Updated on 7. Januar 2021 by sfambach

Gerade bei der Entwicklung auf dem Mircocontroller ist hier und da mal eine Ausgabe wichtig, um zu erahnen, ob der entwickelte Code auch das richtige macht. Schade ist es wenn solche Ausgaben dann immer noch das fertige Produkt belasten. Damit der Debugging code es nicht oder nur bedingt ins Endprodukt schafft gibt es in nahezu allen Framework mechanismen. An dieser Stelle möchte ich die Mechanismen der IDF vorstellen.

Debugging Nachrichten können mit dem folgenden Marco erzeugt werden.

static const char* TAG = "logname";

ESP_LOGx(TAG, "Text mit Platzhalter für parameter %d %s ... ", parameterliste);

Mögliche Befehle für die einzelnen Level:

IDF Warnlevel Quelle: IDF Logging

Der Loglevel wird entweder im Menuconfig gesetzt, der höchster ist Verbose und niedrigster ist Error hier werden nur noch die Fehler ausgegeben. No output unterdrückt die Logausgabe ganz.

IDF Menuconfig – Debugging Level einstellen

Die Vorkonfiguration kann mit dem folgenden Define überschrieben werden, hierbei muss der Loglevel kleiner gleich dem vorkonfigurierten sein. (Wenn in Menuconfig Loglevel = Info ist kann er im Define nicht Debug sein):

#define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE // ESP_LOG_ERROR ...

Hier der Beispiel Code

Mit Loglevel Verbose:

Sieht die Ausgabe im Monitor so aus:

Im Loglevel Warning:

Sieht die Ausgabe wie folgt aus:

Je nach Loglevel werden die nicht benötigten Ausgaben durch den Präprozessor aus dem Code entfernt.

Es ist möglich auf Basis der Tags den loglevel auf Modulebene zu verfeinern. Auch der Loglevel auf Modulebene kann nicht höher als der gesamt Loglevel sein. D.h. wenn der allgemeine Loglevel Warning ist kann der Modulbezogenen Loglevel nur Warning oder Error ausgeben, eine Anagabe von Info würde nicht berücksichtigt werden.

Fazit

Logging ist ein essentieller Mechanismus, noch schöner ist es wenn er so einfach zu handhaben ist wie in der IDF. Es werden keine zusätzlichen Biblitoheken benötigt und alles funktioniert wie es soll.

Verwandte Beiträge

Hauptbeitrag

Quellen

IDF-Fehlercodes

IDF- Fehlerbehandlung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert