Zum Inhalt springen
Marketing Factory Digital GmbH
Kontakt
Logo Marketing Factory Digital GmbH
  • Agentur
    • Aktuelles
    • Über uns
    • Geschichte
  • Leistungen
    • Beratung, Analyse und Strategie
    • Programmierung und Entwicklung
      • Schnittstellen
      • PIM-/ERP-Anbindungen
      • Individualentwicklungen
      • Seamless CMS Integration
    • Hosting und Betreuung
      • Cloud-Strategien
      • Hosting Partner der Marketing Factory
    • Leistungen mit Dritten
  • Technologie
    • TYPO3
      • Aktuelle TYPO3-Versionen
    • Shopware
    • IT-Sicherheit
      • DDoS-Protection
      • Continuous Upgrading
      • Privacy First
    • Tech Stack
      • Bekenntnis zu Open Source
      • Technologieauswahl
      • PHP-Ökosystem
      • Containerisierung & Clustering
      • Content Delivery Networks
      • Suchtechnologien
  • Referenzen
    • Projekte
    • Kunden
      • Kundenliste
    • Screenshot der Homepage der neuen Maxion Wheels WebsiteNEU: Relaunch der Corporate Website von Maxion Wheels
  • Community
    • Community-Initiativen
  • Blog
  • Kontakt
  • Deutsch
  • English

Sie sind here:

  1. Blog
  2. Logging-Erweiterung für Shopware 6
Server-Racks
  • Development
  • Shopware
  • E-Commerce
16.03.2023

Logging-Erweiterung für Shopware 6


Shopware 6 bietet leider keine Möglichkeit, administrative Aktivitäten im Backend zu loggen. Diese Funktionalität ist aber essentiell, um Änderungen oder Fehler protokollieren und nachvollziehen zu können.

Fertige Erweiterungen aus dem Shopware-Store

Im Shopware-Store findet man durchaus Erweiterungen, die diese Funktionalität verfügbar machen sollen und wir haben in einem Kundenprojekt eine dieser Erweiterungen getestet. Wir sind dabei schnell auf Probleme gestoßen und haben uns gegen die Nutzung der Erweiterung entschieden. Dennoch sei erwähnt, dass die getestete Erweiterung für viele Anwendungsfälle sicherlich gut geeignet ist. Unsere Anforderungen konnte diese Lösung jedoch aus den folgenden drei Gründen nicht erfüllen:

  1. Der initiale Anlass, uns um das Logging ein paar Gedanken mehr zu machen, war eine Fehlbedienung, bei der versehentlich im Backend eine Erweiterung deaktiviert wurde. Daraus resultierten Fehler, deren Behebung viel Zeit in Anspruch genommen hat, weil die Deaktivierung der Erweiterung nicht sofort entdeckt worden ist. Ein aussagekräftiges Log hätte uns an dieser Stelle viel Zeit erspart. Die von uns ausgewählte Erweiterung, hätte dieses Ereignis jedoch auch nicht im Log erfasst. Auf Nachfrage beim Hersteller konnte man uns nicht sagen, ob das Feature zeitnah implementiert werden wird. Damit war eigentlich schon klar, dass uns diese Erweiterung nicht weiterbringen würde, dennoch seien auch noch die beiden anderen Gründe, die gegen diese Lösung sprechen, genannt.
  2. Im Shopware-Backend wird nicht zwischen Änderungen durch echte Nutzer und API-Zugriffen unterschieden. Da wir in dem betroffenen Kundenprojekt eine Middleware nutzen, die stündlich mehrfach Produktdaten aktualisiert, führte das zu einem enormen Anwachsen des Logs in sehr kurzer Zeit. Wir sprechen hier von mehr als 1 Million Logeinträge in wenigen Tagen. Die schiere Datenmenge macht das von der Erweiterung erzeugte Logfile somit für uns nur schwer handhabbar.
  3. Die Erweiterung schreibt die Ereignisse nicht in ein Logfile, sondern in die Datenbank. Damit soll erreicht werden, dass die Änderungen im Backend direkt einsehbar gemacht werden können. In unserem Fall würde das jedoch die Datenbank einer enormen zusätzlichen Last aussetzen.
Zeige größere Version von: Code-Beispiel

Wir schreiben die Erweiterung selbst

Letztendlich haben wir uns aus den oben genannten Gründen entschieden, eine eigene Shopware-Erweiterung, die unseren Anforderungen genügt, zu programmieren. Im ersten Schritt haben wir dafür gesorgt, dass Aktivitäten im Erweiterungsmodul in das Logfile geschrieben werden. Dabei werden alle möglichen Events rund um Shopware-Erweiterungen protokolliert, u.a. deren Installation und Deinstallation sowie deren Aktivierung und Deaktivierung. Auch die Durchführung von Updates von Erweiterungen oder Themen wird von unserer Logging-Erweiterung abgedeckt. Dabei wird unterschieden, ob das Ereignis über die Symfony Console oder von einem Administrator im Shopware-Backend ausgelöst wird. Im zweiten Fall werden auch die Informationen zum verantwortlichen Nutzer erfasst.

Im zweiten Schritt haben wir die primären Aktivitäten aus den Shopware Erlebniswelten dem Log hinzugefügt. Hier wird die Erweiterung von den Event “EntityWrittenEvent” und “EntityDeletedEvent” getriggert. An dieser Stelle werden das Erstellen, Bearbeiten und/oder Löschen von Seiten, Blöcken oder Slots (Elemente in Blöcken) geloggt. In unserem Anwendungsfall ist es besonders wichtig, dass die aktive Sprache im Frontend bei der Änderung ebenfalls im Log erfasst wird, da hier das Fehlerpotential erfahrungsgemäß besonders hoch ist.

Zu guter Letzt haben wir die Logging-Erweiterung so gebaut, dass alle Einträge in Logfiles geschrieben werden. Diese Logfiles können wir dann problemlos in unsere Analysewerkzeuge einlesen und weiter verarbeiten.

Die Architektur der Erweiterung haben wir bewusst offen gestaltet, sodass eine Erweiterung für neue Anwendungsfälle jederzeit möglich ist.

Mehr erfahren

Auf unserer Website finden Sie alle relevanten Features und Benefits zu dieser Individualentwicklung kompakt zusammengefasst: Warum ist ein vollständiges, dabei jedoch differenziertes Logging für jeden Shop-Betreiber sinnvoll und welche konkreten Vorteile hat unsere Logging-Erweiterung im Vergleich zur Standardlösung von Shopware 6? Wir haben alles Wissenswerte für Sie in unserem Artikel zur Shopware 6 Logging-Erweiterung zusammengefasst.

Wenn Sie mehr über diese Shopware-Erweiterung oder über unseren Leistungen rund um die Software Shopware erfahren möchten, sprechen Sie uns gerne an.

Christoph Schneider
Blog als RSS-Feed abonnieren

Verwandte Beiträge

  • Entwicklung einer Schnittstelle von Addressware an Shopware 6 zur Steigerung der Adressqualität
  • Effiziente Entwicklungsumgebungen: Warum wir Kubernetes durch Virtual Machines ersetzt haben
  • Reviews von Trusted Shops in Shopware 6 anzeigen
  • Erweiterung UTM-Parameter nun im Shopware Store erhältlich

Wir freuen uns, wenn Ihr diesen Beitrag teilt.


Kommentare

Keine Kommentare gefunden.

Kommentar verfassen.

Ich bin darauf hingewiesen worden, dass die Verarbeitung meiner Daten auf freiwilliger Basis erfolgt und dass ich mein Einverständnis ohne für mich nachteilige Folgen verweigern bzw. jederzeit gegenüber der Marketing Factory Digital GmbH per Post (Marienstraße 14, D-40212 Düsseldorf) oder E-Mail (info@marketing-factory.de) widerrufen kann.

Mir ist bekannt, dass die oben angegebenen Daten so lange gespeichert werden, wie ich die Kontaktaufnahme durch Marketing Factory wünsche. Nach meinem Widerruf werden meine Daten gelöscht. Eine weitergehende Speicherung kann im Einzelfall erfolgen, wenn dies gesetzlich vorgeschrieben ist.

  • Datenschutzerklärung
  • Impressum

© Marketing Factory Digital GmbH

Bildnachweise
  1. "Server-Racks": Taylor Vick / Lizenz: Unsplash License
  2. "Code Beispiel": Markus Spiske / Lizenz: Unsplash License