Debug in Datei

Hallo,

ich habe eine Frage zur diesem tollen neuen Feature, das man den Debug direkt in eine Datei schicken kann; tolle Sache für die Suche von sporadisch auftretenden Problemen.

In V5.1->V5.2 (Q3/2019) — IP-Symcon :: Automatisierungssoftware steht der Hinweis

Neu: IPS_EnableDebugFile($id) aktiviert das Schreiben vom Debug-Logs in eine Datei (z.B. Linux: /var/log/symcon/debug_id.log)

Diese Funktion finden ich allerdings weder in der Befehlsreferenz (was ja auch ok ist, wenn das eine eher undokumentierte Funktion ist) noch hier: paresy/functions.ips.php.
Und ich dachte hier wären alle Funktionen aufgelistet.

dort steht (bzgl. Debug) nur:


function IPS_DisableDebug(int $ID) { return true; }
function IPS_EnableDebug(int $ID, int $Duration) { return true; }

was auf den ersten Blick ein ähnliches Thema bedient, entspricht vielleicht dem Stop/Start im Debug-Fenster.

der Aufruf von IPS_EnableDebugFile funktioniert natürlich, allerdings ist mir etwas aufgefallen:

ruft man IPS_EnableDebugFile mit einer unbekannte Objekt-ID auf, wird auch ein solches Debug-File erzeugt mit dem Inhalt

18.10.2019 13:12:10 | Starting debug session…

Passiert weiter nichts schlimmes, es wird nur anscheinend nicht überprüft, ob das eine zulässige Instanz-ID ist.

Die Aktivierung über die Web-Konsole funktioniert (natürlich), dabei ist mir noch eine Kleinigkeit aufgefallen. Wenn man den Schalter im Debug-Fenster einer Instanz drückt, ist er hinterher inaktiv - so wie so gut,.
Wenn ich dass Debug-Fenster schliesse und wieder öffne ist der Butten wieder aktivierbar. Natürlich kein wirkliches Problem, nur eine Beobachtung.

Bei der Aktivierung des Debug über die Web-Console steht dort, der Debug läuft bis zu einem IPS-Reboot.

Meine Frage: kann ich den Debug eventuell per Kommando wieder ausschalten?

Gruß
demel

Hallo demel,

danke für dein Feedback. Die Funktionen IPS_EnableDebug und IPS_DisableDebug sind wie du schon korrekt angenommen hast das Start/Stop des Debugdialogs.

Der Button zum Datei-Debuggen bleibt bei einem neuen Öffnen des Debug-Logs nicht deaktiviert, da die Konsole nicht prüfen kann, ob dies aktiviert wurde, da existiert keine API für.

Schließlich kannst du das Debuggen in die Datei auch per Funktion beenden. Hierfür verwendest du aktuell die IPS_DisableDebugFile($instanzID). Da dies eine undokumentierte Funktion ist, kann diese allerdings wie üblich jederzeit andere Argumente bekommen oder wegfallen. Verlasse dich also nicht langfristig darauf.

alles klar, danke

demel