Logging aufgeräumt

Ich habe das Logging mal etwas aufgeräumt und alles zentral über die Logging-Methode geführt. Diese hat nun auch einen Timestamp. D.h. Log_Println() hat eh immer einen Timestamp und da man das bei Log_Print() nicht immer will, kann man es dort parametrieren. Ein paar auskommentierte Debug-Meldungen sind jetzt noch übrig, da habe ich mir die Arbeit nicht gemacht.

Ziel war auf jeden Fall, dass man zeitliche Verläufe besser erkennt und auch einheitlich das Logging über die beiden Funktionen macht. Weil sonst wundert man sich immer mal wieder, warum in der seriellen Konsole mehr Dinge erscheinen, als im Webinterface.

So in etwa sieht das dann aus:

[ 951 ] Maximale Inaktivitätszeit wurde aus NVS geladen: 10
[ 1001 ] RFID-Tags koennen jetzt gescannt werden…
[ 1001 ] Port-expander gefunden
[ 1003 ] Interrupt für Port-Expander aktiviert
[ 1004 ] Zyklus für Batteriemessung fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
[ 1011 ] Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
[ 1018 ] Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
[ 1026 ] Spannungslevel (Batterie) fuer Niedrig-Warnung via Neopixel aus NVS geladen: 3.40 V
[ 1034 ] Spannungslevel (Batterie) fuer Kritisch-Warnung via Neopixel aus NVS geladen: 3.10 V
[ 1042 ] Initiale Lautstärke wurde aus NVS geladen: 3
[ 1049 ] Maximale Lautstärke für Lautsprecher wurde ins NVS geschrieben.
[ 1055 ] Maximale Lautstärke für Kopfhörer wurde ins NVS geschrieben.
[ 1060 ] Lautsprecher eingeschaltet
[ 1064 ] Maximale Lautstärke wurde gesetzt auf: 21
[ 1121 ] Initiale LED-Helligkeit wurde aus NVS geladen: 16
[ 1122 ] LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
[ 1213 ] Software-revision: 20221117-1
[ 1216 ] Git-revision: 2f68f73-dirty
[ 1219 ] ESP-IDF version: v3.3.5-1-g85c43024c
[ 1224 ] Wakeup was not caused by deepsleep: 0
[ 1228 ] Versuche SD-Karte wird im SD_MMC-Modus (1 Bit) zu mounten…
[ 1234 ] SD card type: [ 1236 ] SDHC
[ 1238 ] SD-Kartengröße / freier Speicherplatz: 30436 MB / 27390 MB
[ 1245 ] FTP-User wurde aus NVS geladen: esp32
[ 1249 ] FTP-Passwort wurde aus NVS geladen: esp32
[ 1253 ] MQTT-Flag (aktiviert) wurde aus NVS geladen: 1
[ 1258 ] MQTT-ClientId wurde aus NVS geladen: ESP32-ESPuino
[ 1264 ] MQTT-Server wurde aus NVS geladen: 192.168.2.43
[ 1269 ] MQTT-User wurde aus NVS geladen: mqtt-user
[ 1273 ] MQTT-Passwort wurde aus NVS geladen: mqtt-password
[ 1279 ] MQTT-Port wurde aus NVS geladen: 1883
[ 1405 ] Hostname aus NVS geladen: espuino-fepo
[ 1407 ] Versuche mit WLAN ‚XXXX‘ zu verbinden…
[ 1407 ] Freier Heap-Speicher nach Setup-Routine: 117040
[ 1408 ] PSRAM: 4194172 bytes
[ 1411 ] Flash-size: 16777216 bytes
[ 1415 ] PN5180 firmware version=4.1
[ 1419 ] Neue Lautstärke empfangen via Queue: 3
[ 1421 ] RFID-Tags koennen jetzt gescannt werden…
[ 3518 ] Aktuelle IP: 192.168.2.30
[ 3518 ] Synchronisiere Uhrzeit via NTP…
[ 3527 ] Versuche Verbindung zu MQTT-Broker aufzubauen 192.168.2.43
[ 3527 ] Verbinde zu MQTT-Server mit User und Passwort
[ 3551 ] MQTT-Session aufgebaut.
[ 10012 ] Aktuelle Batteriespannung: 3.52 V
[ 10014 ] Aktuelle Batterieladung: 43.18 %
[ 36039 ] Neue Lautstärke empfangen via Queue: 4
[ 36175 ] Neue Lautstärke empfangen via Queue: 5
[ 36343 ] Neue Lautstärke empfangen via Queue: 6
[ 36864 ] Neue Lautstärke empfangen via Queue: 5
[ 36978 ] Neue Lautstärke empfangen via Queue: 4
[ 37102 ] Neue Lautstärke empfangen via Queue: 3
[ 44705 ] RFID-Karte erkannt: (ISO-14443) ID: f7-b2-60-db
[ 44711 ] RFID-Karte empfangen: 247178096219
[ 44712 ] RFID-Karte ist im NVS nicht hinterlegt.
[ 48834 ] RFID-Karte erkannt: (ISO-14443) ID: 3c-bc-6c-3a
[ 48837 ] RFID-Karte empfangen: 060188108058
[ 48841 ] Modus: Webstream
[ 48843 ] Neue Playlist empfangen mit 1 Titel(n)
[ 48843 ] Free heap: : 85404
[ 48847 ] info : Connect to new host: „http://ice.bassdrive.net:80/stream
[ 48896 ] info : PSRAM found, inputBufferSize: 283615 bytes
[ 48902 ] info : buffers freed, free Heap: 87036 bytes
[ 49093 ] info : Connection has been established in 191 ms, free Heap: 86384 bytes
[ 49100 ] ‚http://ice.bassdrive.net:80/stream‘ wird abgespielt (1 von 1)
[ 49302 ] bitrate : 128000
[ 49304 ] info : icy-name: Bassdrive - Worldwide Drum and Bass Radio
[ 49304 ] station : Bassdrive - Worldwide Drum and Bass Radio
[ 49315 ] icyurl : http://www.bassdrive.com
[ 49316 ] info : MP3Decoder has been initialized, free Heap: 61760 bytes
[ 49319 ] lasthost : http://ice.bassdrive.net:80/stream
[ 49509 ] info : stream ready
[ 49511 ] info : syncword found at pos 107
[ 49514 ] info : syncword found at pos 0
[ 49518 ] info : MP3 decode error -2 : MAINDATA_UNDERFLOW
[ 49521 ] info : syncword found at pos 0
[ 49530 ] info : Channels: 2
[ 49530 ] info : SampleRate: 44100
[ 49530 ] info : BitsPerSample: 16
[ 49531 ] info : BitRate: 192000
[ 49716 ] info : StreamTitle=‚The Northern Groove Show LIVE with Dan Soulsmith‘
[ 49717 ] streamtitle : The Northern Groove Show LIVE with Dan Soulsmith
[ 52359 ] info : slow stream, dropouts are possible
[ 53367 ] info : slow stream, dropouts are possible
[ 53393 ] info : slow stream, dropouts are possible
[ 60001 ] RSSI: -52 dBm

Zwischen Timestamp und Beginn des Log-Eintrags sind immer zwei Leerzeichen - das kürzt Discourse hier offenbar raus. Der Timestamp ist die Ausgabe von millis(), d.h. die Anzahl der Millisekunden seit Start.

6 „Gefällt mir“

Was meinst du damit? Loglevel kann man doch definieren pro Nachricht.

Ah OK, hab’s grad gesehen :sunglasses:

Weiß nicht, ob ich das toll finde. Weil den NTP-Sync hast du am Anfang nicht (und vielleicht kriegst du ihn auch gar nicht, weil’s kein WLAN gibt.) Dann hast du einen Übergang von ms auf „echte Zeit“. Sieht vermutlich unschön aus.
Das Ganze aufgedröselt nach ms, wie es jetzt ist, finde ich auf jeden Fall schick.

Ja, wäre vermutlich besser. Ich habe da ja von Anfang an viel Wert drauf gelegt, dass das Deutsch und Englisch kann. Aber ich habe den Eindruck, dass sich noch nicht ein User, der kein Deutsch spricht, auf das Projekt verirrt hat :slight_smile:. Aber gut, ausbauen will ich es jetzt auch nicht mehr - dafür war es zu viel Arbeit.

Was meinst du damit? Loglevel kann man doch definieren pro Nachricht.