Sauberes Loging in Modulen und Plugins a la Contenido?!

Gesperrt
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Sauberes Loging in Modulen und Plugins a la Contenido?!

Beitrag von rethus »

Hallo Leute,

Contenido is ja schon recht umfangreich in Sachen Klassen, Funktionen etc. Genauso unübersichtlich ist der ganze Spaß. http://www.conrepo.org/apidoc/contenido ... 8.11/html/

Meine Frage hier:

Wie würde man für Module und Plugins, im Sinne von Contenido ein wirklich sauberes Logging zustande bringen?
Also ich spreche hier von Fehler, Warnungen und Info-Meldungen.

Folgende Klassen fallen bei der API-Referenz sofort ins Auge:
  • cBufferedLog
  • cLog
  • cModuleLog
  • cNewsletterLog
  • cNewsletterLogCollection
Über Tipps, Erfahrungswerte und Hinweise würd ich mich sehr freuen.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xmurrix
Beiträge: 3217
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Sauberes Loging in Modulen und Plugins a la Contenido?!

Beitrag von xmurrix »

Hallo rethus,

cLog: Schreibt jeden einzelnen Log-Eintrag in die Log-Datei (in contenido/logs/contenido.log).

cBufferedLog: Sammelt alle und hat eine Methode, um die gesammelten Logs in einem Rutsch in die Log-Datei zu schreiben. Basiert auf cLog. Sehe keinen großen Vorteil zu cLog, da cLog im Hintergrund PEAR Log verwendet. Dort wird das Datei-Handle beim ersten Logeintrag geöffnet und am Ende des Scripts wieder geschlossen.

cModuleLog: War wohl angedacht, um in Modulen zu debuggen. Mann muss dann das Modul vorher mit setModule($moduleid) setzen, damit die angedachten zusätzlichen Informationen in der Logdatei landen. Da es auf cBufferedLog basiert, muss man am Ende des Moduls die im Modul gesammelten Log-Einträge in die Log-Datei übernehmen. Dies ist meiner Meinung nach nicht sehr vorteilhaft.

cNewsletterLog/cNewsletterLogCollection: Das ist ganz was eigenes, extra für das Newsletter Plugin implementiert. Hier werden Log-Einträge in einer DB-Tabelle gespeichert.

Am Idealsten scheint hier clog zu sein. Hier braucht man nur eine Instanz zu erstellen und dann einfach einen Logeintrag zu schreiben. Allerdings lässt es sich nicht konfigurieren. Während man auf dem Entwicklungsserver gerne das Loggen aktiv haben möchte, sollte das ja auf dem Produktivserver wiederum deaktiviert werden. Keines der Klassen unterstützt eine solche Konfiguration. Ein eigener Logger der cLog erweitert und konfigurierbar ist, lässt sich aber einfach implementieren. Man sollte vermutich darauf achten, dass Applikationsweit nur eine Instanz von cLog vorkommt, da sonst pro Instanz ein Datei-Handle auf die Log-Datei erstellt wird.

Auch möchte man manchmal Inhalte von Variable leserlich debuggen, das ist mit diesen Log-Klassen nicht möglich, dafür gibt es die Debug-Klassen (sind auch nicht konfigurierbar).

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Sauberes Loging in Modulen und Plugins a la Contenido?!

Beitrag von rethus »

Danke, dass gibt mir schon mal ein klein wenig Einblick in die Sache, und zeigt direkt, dass das Logging mit Contenido scheinbar bisher nicht sonderlich ernst genommen wurde - andernfalls wären die Log-Klassen wohl etwas ausgefeilter (wie du ja schon erwähntest).

Nun ja, ich werde es mir mal anschauen und dann ggf. erstmal auf CLog zurückgreifen.
Ein Sauberes LoggingSystem wäre dennoch wünschenswert. Ggf. mit einem Mandanten oder System-Variablen-Schlüssel, der das System in "Entwicklungs-" oder "Live-Modus" schaltet, und entsprechend das Loging anpasst.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xmurrix
Beiträge: 3217
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Sauberes Loging in Modulen und Plugins a la Contenido?!

Beitrag von xmurrix »

Die Überarbeitung des Loggings war, soweit ich mich erinnern kann, für die nächste Version angedacht. Es hat aber vermutlich eine geringere Prio als andere Todos...
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Gesperrt