[fhem.pl] patch: Debug-Ausgabe um stacktrace erweitern

Begonnen von betateilchen, 16 März 2024, 12:48:35

Vorheriges Thema - Nächstes Thema

betateilchen

Hallo Rudi,

manchmal bauen Entwickler während der Programmierung testweise Debug Ausgaben in ihre Module ein und vergessen, diese Ausgaben vor dem Einchecken wieder zu entfernen. Da man nicht immer aus der Ausgabe (z.B. nur einer Uhrzeit) ableiten kann, woher die Ausgabe kommt, schlage ich vor, die Debug Ausgabe um ein stacktrace() (in Abhängigkeit des globalen Attributes) zu erweitern. Damit bekommt man zumindest einen Anhaltspunkt, woher der Aufruf stammt.

Index: fhem.pl
===================================================================
--- fhem.pl     (revision 28664)
+++ fhem.pl     (working copy)
@@ -5569,6 +5569,7 @@
 sub
 Debug($) {
   my $msg= shift;
+  stacktrace() if(AttrNum('global','stacktrace',0) == 1);
   Log 1, "DEBUG>" . $msg;
 }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig


betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sany

Hi,

in gerade über diese Änderung "gestolpert". Ich nutze Debug gerne, um mir "vorübergehend"** Dinge im Log anzeigen zu lassen. Da ich stacktrace eigentlich immer eingeschaltet habe, um Fehler im Log schneller zu entdecken wunderte ich mich, warum ich auf einmal eine ganze Menge davon im Log habe.
Ich kann die Änderung verstehen, finde sie aber nicht gut. Wenn es nur darum geht, ein vergessenes Debug ein einem Modul evtl. leichter zu identifizieren: könnte man nicht die Debug-Ausgabe mit dem Devicenamen grundsätzlich erweitern? Quasi den Absender dazu?
Vermutlich nutze ich Debug aber auch einfach falsch und sollte auf Log umstellen. Ich fand Debug halt schneller getippt....


Gruß


Sany



** vorübergehend: nichts hält länger als ein Provisorium...
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

betateilchen

Zitat von: Sany am 01 April 2024, 10:46:39** vorübergehend: nichts hält länger als ein Provisorium...

Genau das ist das Problem und der Grund dafür, warum ich diesen patch vorgeschlagen hatte. Es denken und handeln einfach zu viele Leute bezüglich "Provisorium" genau so.

Zitat von: Sany am 01 April 2024, 10:46:39Vermutlich nutze ich Debug aber auch einfach falsch und sollte auf Log umstellen.
Ich fand Debug halt schneller getippt....

Debug("bla")

Log(1,"bla")
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sany

Alles gut, hab schon die meisten Stellen geändert. Das macht auch mehr Sinn.

ZitatCode Auswählen
Debug("bla")
Code Auswählen
Log(1,"bla")

ist aber schon ne wesentlich komplexere Syntax..... ;) ::)


Gruß


Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....