Logfile, Meldungen werden abgeschnitten

Moin,

ich habe in einem Modul ein Fehler, daher bemühe ich mich im Logfile diese zu suchen. Nun ist es aber so, das die Meldungen die Interessant sind, abgeschnitten werden.

Nehmen wir mal diese paar Zeilen

Warning: Undefined array key "data" in /var/lib/symcon/modules/.store/de.treasy79.tibber/Tibber_Realtime/module.php on line 259
Warning: Trying to access array offset on value of type null in /var/lib/symcon/modules/.store/de.treasy79.tibber/Tibber_Realtime/module.php on line 259
Fatal error: Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, null given in /var/lib/symcon/modules/.store/de.treasy79.tibber/Tibber_Realtime/module.php:259
#0 /var/lib/symcon/modules/.store/de.treasy79.tibber/Tibber_Realtime/module.php(168): Tibber_Realtime->ProcessReceivedPayload(Array)
#1 /-(3): Tibber_Realtime->ReceiveData('{"Buffer":"{\\"i...')
  thrown in /var/lib/symcon/modules/.store/de.treasy79.tibber/Tibber_Realtime/module.php on line 259

Interessant für mich wäre genau dieser Inhalt

#1 /-(3): Tibber_Realtime->ReceiveData('{"Buffer":"{\\"i...')

Das dumme ist, das ich den Fehler nicht provozieren kann, ich lasse mir nun die Debugmeldung ins Dateisystem schreiben, aber

  1. kann das dauern bis der Fehler kommt,
  2. wenn ich neustarte wird die Ausgabe gestoppt (und ich starte oft neu :wink: )

Nun zu meiner Frage, warum wird die Meldung abgeschnitten?

Viele Grüße

Das ist PHP. Der Stacktrace enthält alle Aufrufe, aber die Parameter halt nicht.
Das hier:

Sagt auf jeden fall, dass das json_decode davor fehlschlägt.
Das kannst du abfangen und den letzten Fehler ausgeben.

$array = json_decode($string, true);
if (is_null($array)){
    $this->SendDebug('JSON Error', json_last_error_msg(), 0);
    $this->SendDebug('JSON',$string, 0);
    // $this->LogMessage geht auch, dann hast du es im Logfile :)
}

Michael

das ist klar, ich hätte in dem Fall aber gerne gewusst was im receivedata gestanden hätte.

Debugausgaben habe ich ne menge (auch receivdata), aber die kann ich eben nicht lesen wenn ich die Konsole geschlossen habe und die Debugausgaben nicht ins dateisystem schreibe.

Da heißt es also wieder abwarten und beim nächsten Neustart wieder daran denken die zu aktivieren.

bzw. ich erweitere wie du vorgeschlagen hast die Meldung und lasse es ins logfile schreiben. Zumindest solange es noch beta ist :wink:

Da die Konsole auch nicht zaubern kann, müsste man eigentlich auch mit einem undokumentieren Befehl den Debug in dem ‚Symcon startet‘ Script wieder aktivieren können. Vielleicht beobachtest du mal die Konsole im Browser-Entwicklungstool.