Wie nutzt man Log-System vom Shopware?

Hallo,

ich möchte bei meinem Plugin einige fehlerhafte Vorgänge in einem Log speichern. Auf dieser Seite habe ich vom Shopware-Logsystem erfahren. Die Frage ist, wie kann mein Plugin Fehler erzeugen, sodass sie vom Logsystem abgefangen werden? Reicht es aus, einfach eine Exception zu werfen wie das hier?

throw new Exception("Fehlerbeschreibung");

Oder soll ich einen gewissen Typ von Exception verwenden oder gibt es noch weitere wichtige Bedingungen?

 

Danke!

Hi,

du kannst einfach das Logging-Service verwenden. Beispiel:
 

 https://github.com/shopwareLabs/SwagPaymentPaypal/blob/9551c3c56704ff3fab7ba534eb7a9d8500f688b2/Controllers/Frontend/PaymentPaypal.php#L400

Gruß Heiner

1 „Gefällt mir“

@h_lohaus‍ dank dir für die Idee, aber $this->get(‘pluginlogger’) erzeugt bei mir Fehler. Ich habe in Debugger $this untersucht, es gibt da $this->container->services, aber drinnen in services habe ich kein pluginlogger gefunden. Bin mir aber nicht sicher, dass ich es finden sollte :slight_smile:

Hi, das Bespiel ist aus einem Controller. Im neuem Plug-In System kann man es so darauf zugreifen: $this->container->get()

Danke, aber ich habe einen besseren Weg gefunden:

Shopware()->PluginLogger()->warning($message);
Shopware()->PluginLogger()->error($message);

 

1 „Gefällt mir“

@rreimche schrieb:

Danke, aber ich habe einen besseren Weg gefunden:

Shopware()->PluginLogger()->warning($message);
Shopware()->PluginLogger()->error($message);

 

 Die globale Shopware() Funktion zu nehmen ist aber eigentlich nicht so gut. Insbesondere beim 5.2 Plugin System ist $this->container->get(‚pluginlogger‘) in der Plugin Hauptklasse (oder per DI über die services.xml in Subscribern etc) zu bevorzugen, insbesondere wenn (weil :wink: )man Tests für seinen Code schreibst.

2 „Gefällt mir“