Magento zertifiziert


Magento

Magento - Logging mit Log4PHP

Logging mit Log4PHP

Ziel

Logging ist in PHP-Anwendungen nicht unbedingt das, was man Enterprise nennen kann. Magento 1 selbst loggte so gut wie gar keine Informationen, Magento 2 zwar mehr, aber äußerst unstrukturiert. Mit der Zeit haben einzelne Extensions ihr Logging selbst in die Hand genommen, aber wirklich betrieblich steuerbar war und ist es nicht. Daher haben wir vor einigen Jahren in unsere Magento Shops Log4PHP integriert und führen das auch in Magento 2 weiter.

Hintergrund

Magento 2 hat mit Monolog ein Logging-Framework in Verwendung, welches sich bestens dazu eignet, die Log-Messages an verschiedene Ziele zu senden, aber praktisch ist das für uns im Betrieb nur ein nebensächlicher Aspekt. Viel wichtiger ist für uns die Möglichkeit einzelne Teile des Webshops verschieden zu loggen. Bei neuen Schnittstellen z.B. will man ggf. mehr loggen, als reine Fehlermeldungen, während das für den restlichen Shop ausreicht.

Desweiteren war uns wichtig, dass wir betrieblich jederzeit Änderungen vornehmen können, welche Informationen wie geloggt werden, ohne dass Programmiereingriff und Deployment notwendig sind. Insbesondere bei der Fehlersuche ist es äußerst hilfreich, kurzfristig das Log Level einzelner Bereiche zu erhöhen, um das Problem zu identifizieren.

Unser Lösung

Tofex Log4php

Unsere Extension erweitert sowohl in Magento 1, als auch Magento 2, das vorhandene Logging. Basis dafür ist in beiden Fällen unser Modul Tofex Logging, welches das Verwenden von multiplen Logging Frameworks ermöglicht. So wird das vorhandene Logging von Magento nicht ersetzt, sondern funktioniert weiterhin wie gewohnt. Die Log Messages können aber so an beliebig viele Frameworks verteilt werden.

Analog zur Java-Implementierung Log4J können im Log4PHP Appender und Logger definiert werden, welche auf Klassenebene verschiedes Logging zulassen. So ist es möglich die Ausgaben einzelner Klassen mit unterschiedlichen Level zuzulassen, sodass z.B. von einer oder mehreren Klassen alle Info-Meldungen geloggt werden, während bei anderen Klassen nur die Fehlermeldungen in das Log geschrieben werden.

Ähnlich Monolog sind eine Reihe von Möglichkeiten vorhanden, die anfallenden Nachrichten an externe System zu senden. Auch hier ist es möglich, die Verteilung sehr freigranular einzurichten, sodass nur bestimmte Meldungen übermittelt werden. So lässt sich bereits beim Entstehen der Daten festlegen, in welchen Fällen welcher Dienst benachrichtigt wird, sodass ein späteres Filter entfallen kann.

2020-06-07 00:41:59
Warum entwickeln wir eigene Extensions? Warum verkaufen wir keine Extensions?

Kontakt

Tofex UG
Unterm Markt 2
07743 Jena

Telefon: +49 3641 559 87 40
E-Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!