Problem
Die Firmware loggt aktuell mit dem ESP-IDF-Default CONFIG_LOG_TIMESTAMP_SOURCE_RTOS, d.h. der Zeitstempel ist die Zeit seit Boot in Millisekunden:
I (66366) sip: → SIP keepalive ping (4 bytes)
Diese relativen Zeiten sind beim Lesen des Logs (Serial-Konsole und Web-Live-Stream) lästig zu interpretieren — man kann nicht direkt sehen, wann etwas passiert ist.
Lösungsvorschlag
ESP-IDF bietet eine fertige Umschaltung auf die Systemuhr. In sdkconfig.defaults:
# statt CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM=y
Dann lautet das Format I (14:23:05.123) sip: …. Die Uhrzeit kommt aus esp_log_system_timestamp() → localtime_r() und respektiert damit die im Gerät gesetzte Zeitzone (echte lokale Wanduhrzeit).
Verträglichkeit
- Beide Formate behalten die Klammern (
(%s) statt (%lu)). Der Log-Parser in main/log_capture.c überspringt den Zeitstempel generisch bis zum ersten ") " und interpretiert ihn nie — Web-„Protokoll"-Panel, Live-Stream und die Host-Tests (test/test_log_capture.c) funktionieren unverändert. Kein Code-Change nötig, nur die Config.
Bekannte Einschränkungen
- Nur Uhrzeit, kein Datum (
HH:MM:SS.mmm). Für Live-Debugging ausreichend; über mehrere Tage lassen sich Tage nicht unterscheiden. Volles Datum bräuchte einen eigenen Format-Hook (deutlich mehr Aufwand, hier nicht vorgesehen).
- In den ersten Sekunden nach Boot (vor SNTP-Sync) ist die Zeit noch falsch (Epoch ~
01:00:00 + Uptime), bis die Uhr steht.
Priorität
Niedrig — reine Bedienbarkeitsverbesserung beim Log-Lesen.
Problem
Die Firmware loggt aktuell mit dem ESP-IDF-Default
CONFIG_LOG_TIMESTAMP_SOURCE_RTOS, d.h. der Zeitstempel ist die Zeit seit Boot in Millisekunden:Diese relativen Zeiten sind beim Lesen des Logs (Serial-Konsole und Web-Live-Stream) lästig zu interpretieren — man kann nicht direkt sehen, wann etwas passiert ist.
Lösungsvorschlag
ESP-IDF bietet eine fertige Umschaltung auf die Systemuhr. In
sdkconfig.defaults:Dann lautet das Format
I (14:23:05.123) sip: …. Die Uhrzeit kommt ausesp_log_system_timestamp()→localtime_r()und respektiert damit die im Gerät gesetzte Zeitzone (echte lokale Wanduhrzeit).Verträglichkeit
(%s)statt(%lu)). Der Log-Parser inmain/log_capture.cüberspringt den Zeitstempel generisch bis zum ersten") "und interpretiert ihn nie — Web-„Protokoll"-Panel, Live-Stream und die Host-Tests (test/test_log_capture.c) funktionieren unverändert. Kein Code-Change nötig, nur die Config.Bekannte Einschränkungen
HH:MM:SS.mmm). Für Live-Debugging ausreichend; über mehrere Tage lassen sich Tage nicht unterscheiden. Volles Datum bräuchte einen eigenen Format-Hook (deutlich mehr Aufwand, hier nicht vorgesehen).01:00:00+ Uptime), bis die Uhr steht.Priorität
Niedrig — reine Bedienbarkeitsverbesserung beim Log-Lesen.