IPS_LogMessage sollte Skript-ID mit loggen

Ich finde es bei großen Projekten relativ nervig, dass ein durch IPS_LogMessage generierter Logeintrag keine verlässlichen Rückschlüsse darauf zulässt, aus welchem Skript der Eintrag angelegt wurde. Die ID im Log ist immer 00000.

Da die korrekte Benutzung des „sender“ auch nirgends definiert ist, benutzen alle den Befehl wie sie wollen, mal mit einer Skript-ID, mal mit irgendeinem String der mehr oder minder aufschlussreich ist. Mit Glück lässt sich zumindest per externem Editor in den Skripten danach suchen, aber ich jage bspw seit einiger Zeit „Geistereinträge“ ohne jeglichen Inhalt und ich konnte noch nicht feststellen, welches der zahlreichen Skripte bei mir dafür verantwortlich ist.

Ich würde es begrüßen wenn die Logeinträge, die durch IPS_LogMessage() angelegt werden, in der ID-Spalte die ID des jeweiligen Skripts enthielten.

1 „Gefällt mir“

Das ist dann aber nicht IPS_LogMessage.
Sicher das du nicht Script Meldungen meinst?
Die sind gerne gelb (oder rot); und wenn es nur Code (ohne Objekt) ist, immer 00000.
Meldungen von IPS_LogMessage sind grau und haben bei Absender einen Freitext, also gar keine Objekt-ID.
Michael

und genau das stört mich

Es hilft dir aber nicht wenn man es ändert.
Weil, meine Vermutung, das nicht die Meldung mit den 00000 IDs bei dir sind.
Es würde nur eine Funktion beschneiden und nicht abwärtskompatibel sein.
Michael

Du gibst doch selber vor, was geschrieben wird :wink: .

Bei mir ist es immer

IPS_LogMessage(IPS_GetName($_IPS['SELF']), <irgendein Text und oder Variablenwerte>);

Aber du könntest auch die ScriptID oder was auch immer nehmen.

Ah, jetzt hab ich es… das Logfile selbst ist es. Sorry.
Da steht immer 00000. Hatte nur unter Meldungen geschaut.

Das ist natürlich wirklich doof.

Genau, also mich stört diese Beliebigkeit, dass jeder Dev da irgendeinen String angeben kann, es zugleich aber keine eindeutige ID gibt.

Ich bin im Logfile auch schon das ein oder andere Mal an meinen eigenen Scripten (die IDR einen aussagekräfigen 1. Parameter für IPS_LogMessage haben) an den 0000 gescheitert.