Hallihallo!
Don't let me think, das muss ich schon noch zur Genüge bei den wirklichen Problemen der Geschäftslogik.
Das war eigentlich der Grund dafür, dass ich es so gemacht habe...
Was kann einfacher sein, als einmal im Konstruktor ein log-Objekt anzulegen mit
$this->log = logs::getInstance($modulname,$loglevel);
/* Als dritten Parameter kann man sogar noch $paranoia=true setzen, dann wird jede Meldung sofort in die Datei geschrieben */
und mit diesem Objekt dann machen zu können, was man will?
Bestimmte Designrichtlinien musste ich bisher auch immer beachten, wenn ich in irgendeinem Code ein Plugin einfügen wollte. Dafür gibt es dann ja auch eine entsprechende Dokumentation (ja, ich habe Eine, und nein, es interessierte bisher Niemanden :-) )
Wichtig ist mir vor Allem, dass ich hinterher mit den gefilterten Meldungen noch etwas anfangen kann. Dafür brauche ich das wachsende Array...
Also, ich würde es besser finden, das man sich dann explizit um diesen Datenberg kümmert. Notfalls müssen Referenzen zu den Log-Objekten eben noch in einem globalen Repository abgelegt werden, das man am Ende durchläuft und auswertet.
Vielleicht hatte ich das nicht richtig ausgedrückt, aber im Prinzip ist das ja so.
Wenn ich mit den Meldungen noch was anfangen will, hole ich sie mir einfach ab mit
$entries = logs::getMessages($modulname,$level); // level kann hier anders sein als im Konstruktor, wenn man will
und habe dann ein Array mit allen Meldungen des jeweiligen Levels. Damit kann ich als Programmierer arbeiten, sie analysieren, und irgendwann, nach dem Debuggen, vielleicht einfach das Abholen unterlassen und den Loglevel im Konstruktor auf WARNING|ERROR ändern. Dass die Log-Dateien alle an einer zentralen Stelle gespeichert sind, steht auch in der Doku. Und wenn mal Jemand Anders der Admin ist, und keine Lust auf Emails hat, dann kann er das in den Einstellungen des Programms im Admin-Panel einfach ausschalten...
Ich finde eigentlich, dass das für einen potentiellen Plugin- Entwickler eher eine enorme Arbeitserleichterung ist, wenn die komplette Infrastruktur für das Logging schon vorhanden ist. Zumindest, solange es eine ordentliche Doku dazu gibt.
Zumal ich nicht nach dem Debugging alle Kontrollausgaben aus dem Code entfernen muss. Ich muss lediglich das Abholen der Meldungen rauslöschen / anpassen.
Oder liege ich da so falsch?
Beste Grüsse,
Tobias Hahner